可以直接将表名当作变量传入function或procedure中
create or replace function(procedure) test (tablename in varchar2)
as
type v_cursor is ref cursor;
v_tempcursor v_cursor;
i number;
begin
open v_tempcursor for 'select id from ' || tablename;
loop
fetch v_tempcursor into i;
dbms_output.put_line('i:' || i || ';');
exit when v_tempcursor%NOTFOUND;
end loop;
end;
随便写的没有测试。
create or replace function(procedure) test (tablename in varchar2)
as
type v_cursor is ref cursor;
v_tempcursor v_cursor;
i number;
begin
open v_tempcursor for 'select id from ' || tablename;
loop
fetch v_tempcursor into i;
dbms_output.put_line('i:' || i || ';');
exit when v_tempcursor%NOTFOUND;
end loop;
end;
随便写的没有测试。
哪里有比较详细的资料参考?
谢谢!
你应该看看动态sql方面,实现动态sql可以通过dbms_sql包或本地动态sql“execute immediate”,卖本pl/sql高级程序设计,好好看看动态sql那章