ORA-01000是开发中常见的异常。这个异常表示程序中打开的游标数目gt; 数据库中设定的可以打开的最大游标数。

ORA-01000是开发中常见的异常。这个异常表示程序中打开的游标数目> 数据库中设定的可以打开的最大游标数。

这个异常通常由2个原因导致

1. 数据库中设置的maximum open cursors太小

2. 在 Java JDBC程序中通常是代码中打开的ResultSet 或 PreparedStatment 没有被关闭。

什么是游标

游标就是看成是指向结果集的指针。可以把它看成一种资源,或者一种数据结构。

查看系统中允许的最大游标数和 历史上打开的最大游标数

select max(a.value) as highest_open_cur, p.value as max_open_cur

from v$sesstat a, v$statname b, v$parameter p

where a.statistic# = b.statistic# and b.name = 'opened cursors current' and p.name= 'open_cursors'

group by p.value;

HIGHEST_OPEN_CUR MAX_OPEN_CUR

---------------- ------------

69 300

从结果可以看出,,系统允许的最大游标数是300, 历史上最大打开游标数是30, 可以得出结论300 够用了。如果两个数字很接近或相等,那么就要修改最大允许游标数了。

查看时谁在适用游标

select sum(a.value) total_cur, avg(a.value) avg_cur,

max(a.value) max_cur, s.username, s.machine

from v$sesstat a, v$statname b, v$session s

where a.statistic# = b.statistic# and s.sid=a.sid

and b.name = 'opened cursors current'

group by s.username, s.machine order by 1 desc

TOTAL_CUR AVG_CUR MAX_CUR USERNAME MACHINE

--------- ------- ------- -------- -------

114 14.25 69 A KUL-0121

76 8.44 48 B KUL-0121

29 1.38 18 KUL-0121

26 8.67 13 C xxx\KUL-012

既然我们已经可以从系统中知道游标的适用情况,那么下面就要fix 这个异常。

1. 通过设置OPEN_CURSORS, MAX_VALUE增加最大游标数

ALTER SYSTEM SET OPEN_CURSORS = MAX_VALUE SID='*' SCOPE=BOTH;

2. 通常这个异常是由Java程序未关闭ResultSet 或者 PreparedStatment 造成的。正确的适用方法, 总是把close()放在finally中,这样不管有没有发生其他异常,都会关闭ResultSet 和 PreparedStatement.

Statement stmt = conn.createStatement();

try {

ResultSet rs = stmt.executeQuery( "SELECT FULL_NAME FROM EMP" );

try {

while ( rs.next() ) {

System.out.println( "Name: " + rs.getString("FULL_NAME") );

}

} finally {

try { rs.close(); } catch (Exception ignore) { }

}

} finally {

try { stmt.close(); } catch (Exception ignore) { }

}

相关阅读:

关于ORA-01000: maximum open cursors exceeded" 问题分析总结

关于Oracle游标的问题(ORA-01000: maximum open cursors exceeded)

Oracle ORA-01000:maximum open cursors exceeded

ORA-01000: maximum open cursors exceeded

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

mysql错误01000_错误 ORA-01000: maximum open cursors exceeded Exception相关推荐

  1. ORA-01000: maximum open cursors exceeded问题处理

    (1)异常信息: ORA-01000: maximum open cursors exceeded ORA-00604: error occurred at recursive SQL level 1 ...

  2. 生产排故_ORA-01000: maximum open cursors exceeded

    [引言] 项目组今天来找,反馈应用程序日志记录了一连接在昨晚发生连接中断现象,让查一查数据库端有何异常.对应昨晚异常发生时间点,在库alert日志中找到相应时间段的报错信息,报错信息如下: [报错信息 ...

  3. ORACLE数据库超出游标异常解决(maximum open cursors exceeded)

    ORACLE数据库超出游标异常解决(maximum open cursors exceeded) 问题背景 ​ 在项目上线实际运行中,有某处功能涉及到批量增加的实现.之前客户在实际使用中每50条增加一 ...

  4. oracle ORA-01000: maximum open cursors exceeded问题的解决方法

    oracle ORA-01000: maximum open cursors exceeded问题的解决方法 参考文章: (1)oracle ORA-01000: maximum open curso ...

  5. 最近遇到一个ORA-1000,“maximum open cursors exceeded“

    ORA-1000,"maximum open cursors exceeded". 网上找了很多,修改 show parameter open_cursors alter syst ...

  6. ORA-01000: maximum open cursors exceeded

    问题 游标 SQL检索操作返回一组称为结果集的行,这组返回的行都是与SQL语句相匹配的行(零行到多行).简单地使用SELECT语句,没有办法得到第一行.下一行或前10行.有时,需要在检索出来的行中前进 ...

  7. 关于MySQL错误提示ERROR 1265 (01000)的问题分析及解决方案

    MySQL Error 1265 (01000) 错误提示 ERROR 1265 (01000): Data truncated for column '性别' at row 1 错误原因: 某个字段 ...

  8. MYSQL ERROR CODE 错误编号的意义

    mysql error code(备忘) 转1005:创建表失败 1006:创建数据库失败 1007:数据库已存在,创建数据库失败 1008:数据库不存在,删除数据库失败 1009:不能删除数据库文件 ...

  9. Python模块MySQLdb操作mysql出现2019错误:Can't initialize character set utf-8

    我使用python的MySQLdb模块实现了一个mysql client, 在测试时,出现了如下错误 Python模块MySQLdb操作mysql出现2019错误:Can't initialize c ...

最新文章

  1. jmeter聚个报告怎么看qps_Jmeter 使用笔记之 html 报告扩展(一)
  2. java实现图像处理高通滤波,图像处理入门——滤波 - leo_de_macondo的个人页面 - OSCHINA - 中文开源技术交流社区...
  3. sql年月日加减法,计算两个日期之间的天数
  4. Redis中三种特殊数据类型
  5. ARCore-Unity3d教程2 - 基本概念
  6. go使用互斥锁实现协程同步
  7. arcgis交通可达性分析步骤_【规划广角】街道慢行品质的多维度评价与导控策略——基于多源城市数据的整合分析...
  8. php的CodeIgniter框架中如何过滤数据(将危险数据如html类型的数据过滤后提交到数据库)...
  9. BZOJ1111 : [POI2007]四进制的天平Wag
  10. 基于PaddlePaddle的OCR识别,识别车牌号
  11. 浅议一种低成本的48V蓄电池组电压电流采集模块
  12. SkeyePlayer RTSP/RTMP低延迟播放器源码解析系列之效率优化方案
  13. LeetCode 1818. 绝对差值和 [java实现]
  14. 下载xcode 6 beta.dmg
  15. 著名的“三门问题”的验证
  16. 基于单片机的电铃控制器
  17. Surely Vue-去除水印
  18. 关于动漫的HTML网页设计:期末前端web大作业——海贼王基地(6个页面)
  19. break在java语言中什么意思_在Java语言的控制结构中,break语句是经常用到的语句。在switch语句中break语句的作用是( )_学小易找答案...
  20. 如何有效的阅读一本书

热门文章

  1. 阿里云域名解析,将域名绑定到指定服务器
  2. 计算机d盘中隐藏文件怎么恢复,电脑D盘的文件误删除了怎么恢复?怎么找回
  3. 蓝桥杯嵌入式竞赛-数码管学习笔记(个人备份,以便日后查找)
  4. OLTP和OLAP的区别;
  5. php 连接sqlserver数据库(一)
  6. 阿里云OSS配置及使用
  7. 计算机硬盘无法启动怎么办,电脑开机找不到硬盘怎么办?
  8. 【详细搭建教程】在线客服系统源码3.0防黑版,即时聊天通讯源码 带机器人,防注入 无后门
  9. 什么是爬电距离?宽爬电距离光耦为什么越来越受大家青睐?
  10. 使用hMailServer搭建邮件服务器(windows邮件服务器)