execute immediate 实际上也是游标修改init.ora文件中的open_cursors的值,重新启动数据库。

解决方案 »

  1.   

    刚才测试了一下,这种隐式游标是自动进行控制的,也就是说不需要手工close
    SQL> declare
      2  i number;
      3  begin
      4  for n in 1..5000 loop
      5    execute immediate 'select 1 from dual' into i;
      6  end loop;
      7  end;
      8  /PL/SQL 过程已成功完成。SQL> 
    是不是你在执行execute immediate里面执行了别的存储过程,或者其他的某些地方出现了问题?
      

  2.   

    我的EXECUTE里只有单纯的SELECT,INSERT,UPDATE,DELETE。
    如果把 execute immediate 改成游标,然后显示关闭的话,会不会好一些?顺便问一个弱智问题,open cursor for XXX 能不能执行insert,update,delete?
      

  3.   

    靠,找到原因了,不是PLSQL的问题,还是三分吧