编程论坛 » Oracle » 如何在Oracle存储过程里实现SQL局部动态查询
新手上路
帖子:4精华:0积分:140在线:0 小时注册:2007-8-31
我在存储过程里有个SQL语句要用到表变量,就是表名是动态的,但是由于我那SQL语句长度太长,也比较复杂,如果整个SQL语句用动态执行的话以后维护会比较麻烦,我想只实行表名的动态处理,请问各位该怎么做?
[此贴子已经被作者于2007-9-12 17:54:01编辑过]
搜索更多相关主题的帖子: SQL Oracle 动态 局部 语句
查看详细资料
TOP
版主
帖子:487精华:0积分:5588威望:6 在线:309 小时注册:2007-2-12
SQL> begin 2 insert into &table values('马六'); 3 end; 4 /输入 table 的值: test原值 2: insert into &table values('马六');新值 2: insert into test values('马六');
PL/SQL 过程已成功完成。
SQL> select * from test;
COLA----------张三李四王五马六
这位大侠的意思是为表定义一个变量test,可是要怎么定义表变量?总体在存储过程里连起来要怎么写?在存储过程里如果直接用select * from 表标量,编译就通不过了.对了,我是Oracle里的.请指点!非常感谢
你是指这样么:
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');
调用完成。
COLA----------张三李四王五马六田七