在oracle for循环中动态传递表名
是否可以在oracle for循环中动态传递表名 e、 g:-在oracle for循环中动态传递表名,oracle,plsql,Oracle,Plsql,是否可以在oracle for循环中动态传递表名 e、 g:- for nm in ('select * from '|| table_name)) loop dbms_output.put_line('chetan') ; end loop; 可以使用REF游标类型游标。 来自Oracle文档:(还包含绑定-您不需要它们…) 上面的代码多次打印出一个单词。你想干什么? CREATE OR REPLACE PROCEDURE query_invoice(
for nm in ('select * from '|| table_name))
loop
dbms_output.put_line('chetan') ;
end loop;
可以使用REF游标类型游标。 来自Oracle文档:(还包含绑定-您不需要它们…)
上面的代码多次打印出一个单词。你想干什么?
CREATE OR REPLACE PROCEDURE query_invoice(
month VARCHAR2,
year VARCHAR2) IS
TYPE cur_typ IS REF CURSOR;
c cur_typ;
query_str VARCHAR2(200);
inv_num NUMBER;
inv_cust VARCHAR2(20);
inv_amt NUMBER;
BEGIN
query_str := 'SELECT num, cust, amt FROM inv_' || month ||'_'|| year
|| ' WHERE invnum = :id';
OPEN c FOR query_str USING inv_num;
LOOP
FETCH c INTO inv_num, inv_cust, inv_amt;
EXIT WHEN c%NOTFOUND;
-- process row here
END LOOP;
CLOSE c;
END;
/