4
A
回答
2
我相信它会一直存在直到你的会话消失或关闭它。
您可以通过关闭它,当你用它做;-)
严重的是,依靠一些设置来关闭游标你只是隐藏的问题并促进惰性编程配置光标的寿命。它也可能对合法需要保持光标更长时间打开的任何过程产生不利影响。
3
除了DCookie的回答是:
光标寿命的一般模式是
OPEN
BIND
EXECUTE
FETCH...FETCH...FETCH
BIND
EXECUTE
FETCH...FETCH...FETCH
...
CLOSE
即光标可以重新使用新鲜的变量结合到它并再执行它。
在会话级别,PL/SQL还将维护cache of cursors,以避免重新打开最近关闭的游标的开销。所以一个你编程关闭的游标可能仍然是打开的。 Oracle会在适当的时候在幕后关闭它们。
如果光标超出范围,则可以关闭它。也就是说,如果一个电话或程序是这样的:
DECLARE
CURSOR c_1 IS SELECT ....;
BEGIN
OPEN c_1;
FETCH c_1 INTO...;
END;
那么,一旦执行完毕,C_1超出范围(而不能物理再次调用),并可以关闭。这对异常处理特别有用,因为可能会引发异常,跳出该过程并绕过所有'CLOSE c_1';'码。通过关闭超出范围的游标,您不必担心添加异常处理代码来执行此操作。
如果你的游标有一个会话范围(例如,在PL/SQL包规范或主体的全局级定义或通过引用游标返回给客户端),它永远不会以这种方式超出范围,所以永远不会会自动关闭,直到会话断开或通过DBMS_SESSION.MODIFY_PACKAGE_STATE(DBMS_SESSION.FREE_ALL_RESOURCES);
相关问题
- 1. Oracle存储过程 - 从打开游标的过程中返回游标
- 2. 加入oracle游标
- 3. Oracle游标问题
- 4. 存储卡游戏的坐标生成
- 5. 追加到oracle中的游标
- 6. 使用jdbc解释oracle中的游标
- 7. 如何从oracle中的存储过程调用游标
- 8. Java不释放oracle游标
- 9. Oracle ODP.NET游标泄漏?
- 10. 检索Oracle游标与JDBC
- 11. PLSQL Oracle游标程序
- 12. Oracle游标和JDBC ODBC
- 13. 在oracle中打开游标后提交
- 14. 在Oracle中迭代通过游标
- 15. 在sys_refcursor中使用oracle游标
- 16. Oracle 11g:在过程中使用游标
- 17. Oracle游标与SQL Server光标
- 18. 在Oracle 10中隐式或显式关闭存储过程中的游标?存储在Oracle 10.2
- 19. Oracle PLSQL - 在不存在的表上声明游标
- 20. Oracle游标的返回类型
- 21. Oracle:在将值存储到表中的游标中后,从pl/sql中的游标提取日期数据类型值。
- 22. Oracle游标在存储功能,再选择与参数
- 23. Oracle存储过程,返回引用游标与关联数组
- 24. 使用MS EntLib中的DAAB从Oracle存储过程返回引用游标4.1
- 25. ABAP原生SQL游标
- 26. Oracle PLSQL游标嵌套选择案例
- 27. Oracle FOR UPDATE(OF)游标行为
- 28. Oracle使用游标读取第n列
- 29. 用游标替换SELECT INTO语句ORACLE
- 30. Oracle PL/SQL参考游标如何到
+1好信息,谢谢加里。 – DCookie 2010-06-08 14:38:56