ORA-01000: 超出打开游标的最大数 如何处理?
答案:1 悬赏:40 手机版
解决时间 2021-11-28 12:52
- 提问者网友:轻浮
- 2021-11-27 17:45
ORA-01000: 超出打开游标的最大数 如何处理?
最佳答案
- 五星知识达人网友:神鬼未生
- 2021-11-27 18:23
我的需求是先查询一张表,while(rs.next())进行处理,根据处理结果,分别先3个表插入或者更新数据(一个事物).使用的是proxool连接池.我先在程序中取得两个连接,一个查询,另一个进行批量更新删除.然后再循环中处理,循环末尾把批量删除preparestatement关掉,结果出现ora01000.后来改用statement的batch()还是出ora01000,忘高手可以教导方法解决这个问题,不甚感激.问题补充:WAMING5 写道 很明显,问题出在逆循环内部,你一直再循环里面创建preparestatement 而从未去释放,这样就会创建很多,最后当然是会报ORA-01000: 超出打开游标的最大数,很简单,在循环内部操作完毕后关闭新创建的preparestatement就好了可是我在末尾关闭了preparestatement if(update_stm!=null){try{update_stm.close();}catch(Exception e){}}循环底部关闭了,每次循环都关闭了开的新的 问题补充:WAMING5 写道引用 很明显,问题出在逆循环内部,你一直再循环里面创建preparestatement 而从未去释放,这样就会创建很多,最后当然是会报ORA-01000: 超出打开游标的最大数,很简单,在循环内部操作完毕后关闭新创建的preparestatement就好了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯