如何在Oracle存储过程里实现SQL局部动态查询
我在存储过程里有个SQL语句要用到表变量,就是表名是动态的,但是由于我那SQL语句长度太长,也比较复杂,如果整个SQL语句用动态执行的话以后维护会比较麻烦,我想只实行表名的动态处理,请问各位该怎么做?
[此贴子已经被作者于2007-9-12 17:54:01编辑过]
你是指这样么:
SQL> create or replace procedure test_pro(table_name varchar2) as
2 text varchar2(100);
3 begin
4 text:='insert into '||table_name||' values(''田七'')';
5 execute immediate text;
6 end;
7 /
过程已创建。
SQL> call test_pro('test');
调用完成。
SQL> select * from test;
COLA
----------
张三
李四
王五
马六
田七