Oracle连着打开两次游标,只关闭一次有问题吗
展开全部
您好,对于同一个游标,第一次open后,会开辟一块缓存,把记录集读到缓存,然后fetch完 到下一次循环。
然后再open,这时候会清空刚才的缓存区,把新的记录集再读到缓存。
等等循环结束后,把游标close,即第一次开辟的缓存释放掉。
所以说游标放在最后关也没事情,反而会节省很多close的时间。
如果为了保险可以这么写:
if cursor2%open then
close cursor2;
end if;
程序中其他地方如果不能确定,也可以按以上的形式处理。
然后再open,这时候会清空刚才的缓存区,把新的记录集再读到缓存。
等等循环结束后,把游标close,即第一次开辟的缓存释放掉。
所以说游标放在最后关也没事情,反而会节省很多close的时间。
如果为了保险可以这么写:
if cursor2%open then
close cursor2;
end if;
程序中其他地方如果不能确定,也可以按以上的形式处理。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询