select into 变量,但是表名是动态的,请问怎么实现?

天空的云2020 2012-05-30 02:07:57
过程里
select into 变量
但是表名是由传进来的参数动态拼接的。
1.直接过程里执行select into 变量 from 表名 where 。。。,但是不会拼表名。
2.用execute immediate sql_str的话应该也不行吧。
请教高手这里应该怎么实现?
...全文
579 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgycsmb 2012-06-07
  • 打赏
  • 举报
回复
帮顶,接分,谢谢
singzero 2012-06-04
  • 打赏
  • 举报
回复
execute immediate 可以使用 ‘into’ 导出结果, 也可以使用 using 引入变量值

[Quote=引用 1 楼 的回复:]

用动态sql,定义一个变量,
sql_str := '';
execute immediate sql_str into 变量;
[/Quote]
siriusraider 2012-06-04
  • 打赏
  • 举报
回复
动态SQL,拼字符串啊~
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

搞定。谢谢!
[/Quote]

新手路过 蹭分分
小德 2012-05-31
  • 打赏
  • 举报
回复
串接动态sql
execute immediate
小德 2012-05-31
  • 打赏
  • 举报
回复
动态串接sql
execute immediate
小德 2012-05-31
  • 打赏
  • 举报
回复
串接动态sql
execute immediate
bean_sql 2012-05-30
  • 打赏
  • 举报
回复

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 ,
等待高手来讲解...
*/

天空的云2020 2012-05-30
  • 打赏
  • 举报
回复
搞定。谢谢!
eeff 2012-05-30
  • 打赏
  • 举报
回复
用动态sql,定义一个变量,
sql_str := '';
execute immediate sql_str into 变量;

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧