how to pass dynamic table name in cursor
915294Feb 4 2012 — edited Feb 6 2012CREATE OR REPLACE PROCEDURE swap_proc
(
v_phase IN NUMBER DEFAULT NULL ,
v_updper IN NUMBER DEFAULT NULL
)
AS
v_tbl_id NUMBER(10,0);
v_tbl_name VARCHAR2(10);
type tbl_name IS REF CURSOR;
t_n tbl_name;
BEGIN
SELECT id
INTO v_tbl_id
FROM table_name
WHERE phase = v_phase
AND updper = v_updper;
v_casting1 := CAST(v_tbl_id AS LONG);
v_con1 := CONCAT('0000',v_casting1);
v_ssub1 := SUBSTR(v_con1,-1,4);
v_tbl_name := CONCAT('ct_pk',v_ssub1);
OPEN t_n FOR SELECT DISTINCT TABLE_NAME FROM USER_TABLES WHERE TABLE_NAME = v_tbl_name;
LOOP
FETCH t_n IN t_name;
OPEN c_emp FOR SELECT columns FROM t_n;
LOOP
FETCH c_emp INTO variables ;
exit when c_emp%notfound;
BEGIN
**SOME STATEMENT**
END;
END;
END LOOP;
CLOSE c_emp;
END
now i got v_tbl_name and TABLE_NAME from the above query in t_name. but the problem is that how to pass t_name in CURSOR.
suggestions please.
Thank You.
Rohan Jain