select into 变量,但是表名是动态的,请教如何实现
select into 变量,但是表名是动态的,请问怎么实现?
过程里
select into 变量
但是表名是由传进来的参数动态拼接的。
1.直接过程里执行select into 变量 from 表名 where 。。。,但是不会拼表名。
2.用execute immediate sql_str的话应该也不行吧。
请教高手这里应该怎么实现?
------解决方案--------------------
用动态sql,定义一个变量,
sql_str := '';
execute immediate sql_str into 变量;
------解决方案--------------------
过程里
select into 变量
但是表名是由传进来的参数动态拼接的。
1.直接过程里执行select into 变量 from 表名 where 。。。,但是不会拼表名。
2.用execute immediate sql_str的话应该也不行吧。
请教高手这里应该怎么实现?
------解决方案--------------------
用动态sql,定义一个变量,
sql_str := '';
execute immediate sql_str into 变量;
------解决方案--------------------
- SQL code
declare v_importTBName varchar2(10); v_tbName varchar2(10); v_sql varchar2(4000); begin --传递的表名 v_importTBName:='v_test'; v_sql:='select count(1) into v_tbName from '|| v_importTBName; dbms_output.put_line(v_sql); --execute immediate v_sql; end; /* 只能输出语句, select count(1) into v_tbName from v_test 带有into 的语句不能直接用 execute immediate , 等待高手来讲解... */