如果我没有在oracle中显式关闭sys_refcursor怎么办?

时间:2010-08-19 12:04:00

标签: oracle

如果我没有在oracle中显式关闭sys_refcursor怎么办?它会给出一个开放的游标问题,并导致应用程序的速度慢吗?

2 个答案:

答案 0 :(得分:2)

一旦超出范围,就应该将其丢弃/自动关闭。

但是,“超出范围”的含义可能因客户端技术(JDBC,PL / SQL等)而异。例如,在PL / SQL中,它可以取决于游标是作为包变量还是局部变量保存。

正如Dave的回答所暗示的那样,每个打开的光标都将计入总限制 - 最终你将达到此限制并获得应用程序错误。

我认为最佳做法是在完成后明确关闭。

答案 1 :(得分:1)

只要游标处于打开状态,它就会计入OPEN_CURSORS定义的限制,因此如果您反复打开游标并且不关闭游标,则可能会出现问题。

在关闭之前,它还会继续消耗一些内存。我不认为它可能会显着降低性能。