解决方案 »

  1.   

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

  2.   

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

  3.   

    sql window不能解析动态SQL,只能在程序中执行,在程序中不能只执行SQL,需要用变量或者游标来获取查询结果:
    如SELECT INTO
    那有没有什么办法在sqlwindow 中显示查询结果吗,因为我是在存储过程中动态拼接的sql,然后把在存储过程执行动态拼接的sql将查询结果放入到view中,因为从view中查询结果的时候每次都需要先执行存储过程,再从view中查询结果,现在希望能够在sql window中执行一次就可以把结果显示出来。不知道还有其他的方式不,一定需要在sql window中执行,因为需要把结果导成excel。
    建个临时表嘛、
    那你就在procedure中将动态SQL先执行,然后就结果保存在临时表中,然后再SQLWINDOW中将结果查询出来就行了
      

  4.   

    sql window不能解析动态SQL,只能在程序中执行,在程序中不能只执行SQL,需要用变量或者游标来获取查询结果:
    如SELECT INTO
    那有没有什么办法在sqlwindow 中显示查询结果吗,因为我是在存储过程中动态拼接的sql,然后把在存储过程执行动态拼接的sql将查询结果放入到view中,因为从view中查询结果的时候每次都需要先执行存储过程,再从view中查询结果,现在希望能够在sql window中执行一次就可以把结果显示出来。不知道还有其他的方式不,一定需要在sql window中执行,因为需要把结果导成excel。
    建个临时表嘛、
    那你就在procedure中将动态SQL先执行,然后就结果保存在临时表中,然后再SQLWINDOW中将结果查询出来就行了
    问题在于只想执行一次操作就可以把结果显示出来:
    而在sql window执行存储过程的时候只能在语句块中执行,这样的话要先执行存储过程,然后再执行一次查询操作,就有两次操作了。
      

  5.   

    begin
    execute immediate 'select * from vew_test';
    end;
    语句块中的结果有没有办法在sql window 中输出显示?
      

  6.   

    既然被邀请了,那我发表发表意见。
    回复1楼:首先那个语句 execute immediate 'select * from tmp_rep'在plsql肯定执行出错,所以无论语句正确与否必定返回不了结果。然后这个如果出现在存储过程中,虽然过程没问题可以执行,但是存储过程只是执行了select * from tmp_rep,你没有让其返回你查询的结果,所以你什么都看不到,像2楼说的那样需要用变量或者游标返回结果。
    回复3楼:大概理解你说得意思。既然可以用select * from view_视图名称,那就可以sqlloader和操作系统任务计划直接生成excel就好,或者直接执行查询语句;不过如果你的view经常变化,每次都需要执行过程,如果有规律感觉可以通过指定job省去你手动执行的时间。
    回复6楼:这些写的话是没办法生成结果的。