Java 技术篇 - 连接oracle数据库执行sql使用close()关闭createStatement()无效无法清除游标缓存问题解决,报“ORA-01000: 超出打开游标的最大数“错误解决方法
生活随笔
收集整理的這篇文章主要介紹了
Java 技术篇 - 连接oracle数据库执行sql使用close()关闭createStatement()无效无法清除游标缓存问题解决,报“ORA-01000: 超出打开游标的最大数“错误解决方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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: 超出打开游标的最大数“错误解决方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PyQt5 图形界面 - Qt Desi
- 下一篇: Linux下oracle数据库spfil