ORA-01000-超出打开游标的最大数(解决及原因)

本文介绍了在处理大量数据时遇到的Oracle数据库游标超出最大数目的问题,通过调整数据库参数和优化Java代码实现解决方案。在循环中调用PreparedStatement导致游标不断打开,最终引发错误。通过将预编译语句移出循环并确保正确关闭,避免了该问题,实现了程序的稳定运行。

GPS平台、网站建设、软件开发、系统运维,找森大网络科技!
https://cnsendnet.taobao.com
来自森大科技官方博客
http://www.cnsendblog.com/index.php/?p=1590

修改后就没报错了
在这里插入图片描述
还是 chongqingdaxue 缴费平台, 税票打印完毕, 上传到财务处时, 当税票数目较少时(10几张), 能正常上传; 当数目较大时(共408张), 就上传失败. 查看 tomcat 日志, 如下:

既然超出最大游标数, 为了第一间让程序恢复正常运行, 当然"脚疼治脚", 先把最大游标数调大:
(1). 以 DBA 登录 PL/SQL
(2). 打开 Command Window(注意不是 SQL Window)
在这里插入图片描述
(3). 输入以下命令, 修改 oracle 最大游标数为 1000
SQL> alter system set open_cursors=1000 scope=both;
(4). 查看最大游标数是否已修改成功
SQL> show parameter open_cursors;
(5). 重启 tomcat(一定要有这一步, 否则修改不生效)

经过以上操作, 票据顺利上传上去了, 可是这样治标不治本, 万一以后来个1000张以上的

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值