Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

how to pass dynamic table name in cursor

915294Feb 4 2012 — edited Feb 6 2012
CREATE 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
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Mar 5 2012
Added on Feb 4 2012
7 comments
5,940 views