在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 可以做到这点吗?
------解决思路----------------------
建个临时表嘛、
那你就在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楼:这些写的话是没办法生成结果的。