200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > Java 技术篇 - 连接oracle数据库执行sql使用close()关闭createStatement()无效无法

Java 技术篇 - 连接oracle数据库执行sql使用close()关闭createStatement()无效无法

时间:2023-07-13 03:41:30

相关推荐

Java 技术篇 - 连接oracle数据库执行sql使用close()关闭createStatement()无效无法

java.sql.SQLException: ORA-01000: 超出打开游标的最大数问题在一个大数据量的嵌套循环下close()关闭createStatement()根本无效,即使把执行过程封装在类里,而用循环来调用类也会有问题。

原因:

close()后游标里缓存的资源并不会被释放,而是返回给数据库连接池,直到退出最外层的循环,才会自动被释放。

解决方案:

方案一:如果数据库不是超级大,一般通过直接在数据库里调大open_cursors游标参数可解决问题。

方案二:超大数据量的话,要拆分大量数据为小量的数据,把循环放在类里进行封装,最后把结果拼起来就好了。

show parameter open_cursors;可以查看游标的最大值。

alter system set open_cursors=5000 scope=both;可以设置游标的最大值。

喜欢的点个赞❤吧!

Java 技术篇 - 连接oracle数据库执行sql使用close()关闭createStatement()无效无法清除游标缓存问题解决 报“ORA-01000: 超出打开游标的最大数“错误解决方法

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。