专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Oracle技术

在plsql的sqlwindow中执行话语块 execute immediate 'select * from tmp_rep'没有显示查询结果

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
在plsql的sqlwindow中执行语句块 execute immediate 'select * from tmp_rep'没有显示查询结果
在plsql的sqlwindow中执行语句块 execute immediate 'select * from tmp_rep'没有显示查询结果:
存储过程肯定是正确的。

declare 
sqlReport varchar2(100):='';
begin

procedDescReport(sqlReport);
dbms_output.put_line(sqlReport);
execute immediate 'select * from tmp_rep';
end;

希望能向普通的sql查询语句一样,查询结果显示在sql window下方。
pl/sql 可以做到这点吗?
------解决思路----------------------
引用:
Quote: 引用:

Quote: 引用:

在plsql的sqlwindow中执行语句块 execute immediate 'select * from tmp_rep'没有显示查询结果:
存储过程肯定是正确的。

declare 
sqlReport varchar2(100):='';
begin

procedDescReport(sqlReport);
dbms_output.put_line(sqlReport);
execute immediate 'select * from tmp_rep';
end;

希望能向普通的sql查询语句一样,查询结果显示在sql window下方。
pl/sql 可以做到这点吗?

sql window不能解析动态SQL,只能在程序中执行,在程序中不能只执行SQL,需要用变量或者游标来获取查询结果:
如SELECT INTO

那有没有什么办法在sqlwindow 中显示查询结果吗,因为我是在存储过程中动态拼接的sql,然后把在存储过程执行动态拼接的sql将查询结果放入到view中,因为从view中查询结果的时候每次都需要先执行存储过程,再从view中查询结果,现在希望能够在sql window中执行一次就可以把结果显示出来。不知道还有其他的方式不,一定需要在sql window中执行,因为需要把结果导成excel。

建个临时表嘛、
那你就在procedure中将动态SQL先执行,然后就结果保存在临时表中,然后再SQLWINDOW中将结果查询出来就行了
------解决思路----------------------
既然被邀请了,那我发表发表意见。
回复1楼:首先那个语句 execute immediate 'select * from tmp_rep'在plsql肯定执行出错,所以无论语句正确与否必定返回不了结果。然后这个如果出现在存储过程中,虽然过程没问题可以执行,但是存储过程只是执行了select * from tmp_rep,你没有让其返回你查询的结果,所以你什么都看不到,像2楼说的那样需要用变量或者游标返回结果。
回复3楼:大概理解你说得意思。既然可以用select * from view_视图名称,那就可以sqlloader和操作系统任务计划直接生成excel就好,或者直接执行查询语句;不过如果你的view经常变化,每次都需要执行过程,如果有规律感觉可以通过指定job省去你手动执行的时间。
回复6楼:这些写的话是没办法生成结果的。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: