`

java.sql.SQLException: ORA-01000: maximum open cursors exceeded

 
阅读更多

问题描述:
Oracle 使用 OPEN_CURSORS 参数指定一个会话一次最多可以打开的游标的数量。超过此数量时,Oracle 将报告 ORA-01000 错误。当此错误传到 DAO时,就会抛出 SQLException

先做程序review,查看是否有在loop中create statement,这个是最容易导致“ORA-01000”问题出现。
根据oracle文档,最大游标是针对per-session而言,每个session最多允许创建300个cursor。如果connection创建300个未关闭的statement,将导致“超出最多允许打开的游标数”错误出现。减少在程序中使用loop来超作statement的情况,如果使用,用好及时做close操作。在文件init.ora中的参数open_cursors = 300 # 允许打开的最大游标数。(好像可以设置对于同一个SQL,重用同一个游标的,不知道具体是哪个参数?好像是参数CURSOR_SHARING?[http://www.oracle.com.cn/onlinedoc/nav/initora.htm?remark=homepage#index-CUR])

以DBA身份进入数据库端,查看目前游标的实际情况

select o.sid, user_name, osuser, machine, count(*) num_curs
from v$open_cursor o, v$session s
where o.sid=s.sid
group by o.sid, user_name,osuser, machine
order by num_curs desc

--依据前面查训到的联机情况,依据SID近一部查询,再进一步做查询到底是哪些sql对游标占用具体情况
select q.sql_text
from v$open_cursor o, v$sql q
where q.hashvalue=o.hash_value and o.sid = SID

分享到:
评论

相关推荐

    oracle+ora-各种常见java.sq

    - `java.sql.SQLException: ORA-01000: maximum open cursors exceeded`: 当打开的游标超过数据库允许的最大值时会出现此错误。检查代码中游标的关闭情况,避免资源泄漏。 8. **锁冲突** - `java.sql....

    解决Exception java.sql.SQLException ORA-00600 内部错误代码

    在oracle里面运行一下,解决Exception java.sql.SQLException ORA-00600 内部错误代码

    java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK

    java.sql.SQLException: 不支持的字符集 (在类路径中添加 orai18n.jar): ZHS16GBK ……

    Caused by: java.sql.SQLException: JZ0SJ: 没有在此数据库中发现元数据存取器信息。 请按 jConnect 文档中所述安装

    标题中的“Caused by: java.sql.SQLException: JZ0SJ: 没有在此数据库中发现元数据存取器信息。 请按 jConnect 文档中所述安装”是一个典型的错误信息,表明在尝试使用Java数据库连接(JDBC)驱动程序访问数据库时...

    java.sql.SQLException: 结果集已耗尽

    在Java编程中,`java.sql.SQLException: 结果集已耗尽` 是一个常见的错误提示,通常出现在处理数据库查询结果集时。这个异常表明程序试图访问已经没有数据的结果集中下一行,即所有行已经被遍历完,尝试访问超出范围...

    ORA-00060: 等待资源时检测到死锁--oracle 数据库表死锁异常

    在Oracle数据库系统中,"ORA-00060: 等待资源时检测到死锁" 是一个常见的错误提示,它表明两个或多个事务在执行过程中陷入了无法继续进行的状态,因为彼此都在等待对方释放资源。这种情况通常发生在并发操作中,比如...

    ORA-28001 the password has expired密码过期.docx

    在Oracle数据库管理中,"ORA-28001 the password has expired" 是一个常见的错误,它表明数据库用户的密码已经超过了预设的有效期限,导致用户无法正常登录。这个错误主要出现在Oracle 11G及更高版本中,因为这些...

    ora-dba.rar

    "ora-dba.rar" 是一个专门针对Oracle数据库管理的实用工具集合,对于数据库开发者和管理员而言,它提供了全面的功能,极大地简化了日常的数据库管理和优化任务。这个工具集的使用不仅可以提升工作效率,还能帮助DBA...

    JDBC驱动for sqlserver、oracle、mysql

    它由Sun Microsystems开发并被纳入Java SE(标准版)的一部分,允许开发者在Java应用程序中执行SQL语句,实现数据的增删改查。JDBC驱动是连接Java应用程序和数据库之间的桥梁,不同的数据库需要对应的JDBC驱动。 1....

    oracle ora-各种常见java.sql.SQLException归纳

    ORA-06511: CURSOR_ALREADY_OPEN ORA-06511 是一个常见的错误信息,通常发生在尝试打开已经打开的指针时。这种错误通常是由于开发者在编写 PL/SQL 语句时,忘记了某个指针的状态,导致 Oracle 无法打开指针。解决这...

    java.sql.SQLException: 内部错误: Unable to construct a Datum from the specified input

    Q: I am working with ... I am using updateBinaryStream method of resultset to update the BLOB field but it is failing after giving following exception java.sql.SQLException: Internal Error: Unable to

    ORA-01157解决方案.txt

    ### ORA-01157 错误详解与解决方案 #### 错误代码与含义 ORA-01157 错误是 Oracle 数据库中一个常见的错误代码,其全称是:“ORA-01157: 无法识别/文件 - DBWR 文件”。这个错误通常发生在数据库启动过程中,当...

    oracle jdbc dirver

    它实现了Java Database Connectivity (JDBC) API,使得开发者可以使用Java语言来操作Oracle数据库,执行SQL语句,进行数据查询、插入、更新和删除等操作。Oracle JDBC驱动分为不同版本,包括 Thin、OCI、JDBC-ODBC ...

    oracle数据库的clob大字段在jdbc中的处理方式

    在JDBC中,CLOB对象被表示为`java.sql.Clob`接口的实例,提供了读取和修改CLOB字段的方法。 要读取CLOB字段并转换为String,你需要遵循以下步骤: 1. **建立连接**:使用`DriverManager.getConnection()`方法建立...

    数据库连接利用工具–Sylas

    针对“ORA-24345”错误的解决方案可能涉及到检查SQL语句,确保所有字段的数据类型和长度都与数据库表结构相匹配,或者调整缓冲区大小以适应数据。对于文件管理功能的问题,可能需要修复或优化上传机制,确保只有安全...

    oracle实例的内存(SGA和PGA)进行调整,优化数据库性

    1. **共享池(Shared Pool)**:用于缓存最近执行的SQL语句和数据定义,包括库缓存和数据字典缓存。 2. **数据缓冲区(Database Buffer Cache)**:缓存从数据文件中检索的数据块,显著提升读写性能。 3. **日志缓冲...

    java.sql.SQLException: null,  message from server: “Host ‘%’ is not allowed to connect to

    java.sql.SQLException: null, message from server: “Host ‘223.72.41.7’ is not allowed to connect to this MySQL server” 客户端访问时报错: 解决方法: 1,登陆服务器 mysql> use mysql; //用mysql ...

    hive-jdbc-1.1.0-cdh5.4.5-standalone.jar

    Caused by: java.sql.SQLException: java.lang.ClassNotFoundException: org.apache.hive.jdbc.HiveDriver at com.trs.gateway.commons.hive.HiveFeature.getConnection(HiveFeature.java:57) at ...

    ora常用sql.rar

    "ora常用sql.rar"这个压缩包显然包含了DBA(Database Administrator,数据库管理员)在日常工作中经常会用到的一些Oracle SQL命令。让我们详细探讨一下这些关键命令及其用途。 1. **查看系统SGA区状态**: SGA...

Global site tag (gtag.js) - Google Analytics