打开游标树过多的问题
我是使用asp.net的很多返回DataSet的程序调用oracle的存储过程
很多存储过程是这样写的
create....
)as
begin
open 游标名 for
select * from A where ID=89;
end...;
不知道这样写对不对,程序也没报错,也可以执行出结果,但是频繁的刷新网页后提示打开的游标过多,我这样写还需要关闭吗,能否详细讲解一下,谢谢
还有就是asp.net的 OracleDataReader 如何调用返回一条记录集的存储过程 谢谢 那位能帮帮忙,万分感激!!
------解决方案--------------------存储过程中要clost 游标的
------解决方案--------------------一定要注意close
------解决方案--------------------不如直接用隐式游标的 自动关闭的
------解决方案--------------------那样的过程就是只能那样写的,所以不存在在过程中自动CLOSE的问题。
要解决,要么就是设置可以打开的cursor数目多一些(在OEM中配置),要么就是对SESSION的时间进行一些限制(SESSION完成之后,CURSOR是自动关闭的),以保证一段之间之内打开的CURSOR不会太多。
------解决方案--------------------open 游标名必须对应close游标.
------解决方案--------------------建议使用
FOR 游标变量 IN 游标名 LOOP
...
END LOOP ;
这样可以自行关闭游标。