暂无图片
Oracle报错:ORA-01000 : 超出打开游标的最大数
我来答
分享
暂无图片 匿名用户
Oracle报错:ORA-01000 : 超出打开游标的最大数

微信图片_20211228150836.png

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
摸摸鱼

同楼上,也可以参考

Typically, in Java, when an object goes out of scope, it is automatically garbage collected, but the Java specification does not place any specific requirements on the JVM regarding when (or even if) this will occur for any particular object. Therefore, do not rely on finalizers to close your cursors.

Explicitly close all cursors by either using ResultSet.close(), Statement.close(), and/or PreparedStatement.close() when you no longer need the cursor. This ensures that the corresponding server-side cursors are closed, preventing the ORA-1000 error. Be sure to close these JDBC objects within the scope that they were created. Closing these objects in a finally{} block is recommended, however, DO NOT rely upon a finalize() method because a finalize() method is never guaranteed to run by the JVM!

A common error occurs when CallableStatement is used to call a PL/SQL procedure that returns a REF CURSOR. If you do not close the corresponding ResultSet object, a cursor will be left open on the server.

You can query the SQL_TEXT column in V$OPEN_CURSOR view from the schema to determine which cursors are not being closed. For example:

SQL> select sql_text from v$open_cursor;
暂无图片 评论
暂无图片 有用 0
打赏 0
暂无图片
cqiwen

存储过程中打开游标后没有进行关闭吗?或者尝试调大open_cursors的值。

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏