如果我没有在oracle中显式关闭sys_refcursor怎么办?它会给出一个开放的游标问题,并导致应用程序的速度慢吗?
答案 0 :(得分:2)
一旦超出范围,就应该将其丢弃/自动关闭。
但是,“超出范围”的含义可能因客户端技术(JDBC,PL / SQL等)而异。例如,在PL / SQL中,它可以取决于游标是作为包变量还是局部变量保存。
正如Dave的回答所暗示的那样,每个打开的光标都将计入总限制 - 最终你将达到此限制并获得应用程序错误。
我认为最佳做法是在完成后明确关闭。
答案 1 :(得分:1)
只要游标处于打开状态,它就会计入OPEN_CURSORS定义的限制,因此如果您反复打开游标并且不关闭游标,则可能会出现问题。
在关闭之前,它还会继续消耗一些内存。我不认为它可能会显着降低性能。