现在是这样写的:
- SQL code
for rec_a_cur in a_cur loopend loop;close a_cur;
但是走到close a_cur的时候会抛出异常。
我把这close a_cur去掉就没有问题了。
难道不需要手动关闭游标?
我想问的是在oracle 存储过程中,什么情况下需要手动关闭游标?或者就不需要手动来关闭?
或者??? 求详细
------解决方案--------------------
代码迷推荐解决方案:oracle存储过程,http://www.daimami.com/search?q=177537
------解决方案--------------------
不用单独close a_cur
因为光标for循环会自动关闭光标。
------解决方案--------------------
两种游标使用方式
1.使用for循环的是隐式打开和关闭,不用写代码控制.for循环开始时打开,循环结束时自动关闭
for rec_a_cur in a_cur loop
--逻辑处理
end loop;
2.显式打开和关闭,写代码控制游标开关和循环
open a_cur;
loop
fetch into...
exit when ...
--逻辑处理
end loop;
close a_cur;
------解决方案--------------------
for rec_a_cur in a_cur loop
end loop;
这种不需要close,loop完会自动close