日期:2014-05-17  浏览次数:21259 次

oracle 存储过程 游标关闭疑问
现在是这样写的:
SQL code

for rec_a_cur in a_cur loop

end loop;
close a_cur;


但是走到close a_cur的时候会抛出异常。
我把这close a_cur去掉就没有问题了。
难道不需要手动关闭游标?
我想问的是在oracle 存储过程中,什么情况下需要手动关闭游标?或者就不需要手动来关闭?
或者??? 求详细

------解决方案--------------------
我的异常网推荐解决方案:oracle存储过程,http://www.aiyiweb.com/oracle-develop/177537.html
------解决方案--------------------
不用单独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