`
elstage
  • 浏览: 79834 次
  • 性别: Icon_minigender_1
  • 来自: 地球
社区版块
存档分类
最新评论

Oracle超出打开游标的最大数

阅读更多

系统运行了一段时间报错:java.sql.SQLException: ORA-01000: 超出打开游标的最大数

查看数据库当前的游标数配置slqplus:show parameter open_cursors;

查看游标使用情况:

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

查看游标执行的sql情况:

select q.sql_text
from v$open_cursor o, v$sql q
where q.hashvalue=o.hash_value and o.sid = 123;

如果程序释放资源没有问题,则加大游标数。

 

分享到:
评论
5 楼 rabbitbug 2009-09-06  
是不是在循环中打开了游标?
4 楼 375 2009-03-01  
还是看看数据库资源是否没有正常释放吧
3 楼 Magicloud 2009-02-26  
elstage 写道
Magicloud 写道
个人倾向于不使用游标,麻烦太多。
在以前公司写过完全不用游标的储存过程,直接结果就是其他人看不懂……但其伸缩性、性能是游标不能比的。

如果这个存储过程是要返回查询的列表,不用游标,怎么实现?

24点都可以用关系代数解决,何况一个列表而已……
2 楼 elstage 2009-02-26  
Magicloud 写道
个人倾向于不使用游标,麻烦太多。
在以前公司写过完全不用游标的储存过程,直接结果就是其他人看不懂……但其伸缩性、性能是游标不能比的。

如果这个存储过程是要返回查询的列表,不用游标,怎么实现?
1 楼 Magicloud 2009-02-24  
个人倾向于不使用游标,麻烦太多。
在以前公司写过完全不用游标的储存过程,直接结果就是其他人看不懂……但其伸缩性、性能是游标不能比的。

相关推荐

    超出打开游标的最大数的原因和解决方案

    应用程序打开的游标数超过 OPEN_CURSORS 参数指定的最大值是超出打开游标的最大数的主要原因。OPEN_CURSORS 参数的默认值为 50,但可以根据需要进行修改。当应用程序打开的游标数超过这个限制时,Oracle 数据库将...

    oracle超出打开游标的最大数的原因和解决方案

    解决疑难问题,针对偏僻的问题:oracle超出打开游标的最大数的原因和解决方案,希望能对大家操作数据库有用处

    Oracle出现超出打开游标最大数的解决方法

    本文实例讲述了Oracle出现超出打开游标最大数的解决方法。分享给大家供大家参考,具体如下: Java代码在执行conn.createStatement()和conn.prepareStatement()的时候,实际上都是相当与在数据库中打开了一个cursor。...

    Oracle数据库游标连接超出解决方案

    3.获取打开的游标数 select o.sid, osuser, machine, count(*) num_curs from v$open_cursor o, v$session s where user_name = 'AF651_U8' and o.sid = s.sid group by o.sid, osuser, machine order b

    oracle 声明游标(不具备字段)规则应用

    未关闭的游标可能导致“超出打开游标最大数”的错误。 3. 游标变量:可以声明游标变量,使得游标可以在存储过程或函数之间传递,便于复用和模块化。 4. 游标for循环:Oracle提供了一种简化游标使用的语法,即`FOR`...

    详解Oracle游标的简易用法

    忘记关闭游标可能导致超出打开游标最大数的错误。 - 游标也可以返回到存储过程或函数,使得调用者可以处理结果集。 10. **最佳实践**: - 只在必要时使用游标,因为它们消耗内存和CPU资源。 - 尽可能使用集操作...

    Oracle Exception汇总(自定义Oracle异常)

    6. **CURSOR_ALREADY_OPEN** (ORA-06511): 如果试图重新打开已经打开的游标,就会出现这个错误。确保在关闭游标后才能再次打开。 7. **DUP_VAL_ON_INDEX** (ORA-00001): 当在具有唯一约束的索引列上插入重复值时,...

    Oracle错误码大全

    1. ORA-01000: 达到最大打开游标数 - 表示应用程序打开了过多的游标,超过了系统允许的最大值。解决方法是优化代码,关闭不再使用的游标,或者增加`OPEN_CURSORS`初始化参数的值。 2. ORA-01422: 指定的行数超出...

    oracle预定义异常

    21. TIMEOUT_ON_RESOURCE:在等待某个资源时,Oracle超出了预设的等待时间,会引发此异常。 理解并适当地处理这些预定义异常对于编写健壮、高效的Oracle数据库应用程序至关重要。通过捕获和处理这些异常,开发者...

    Oracle第三次考试答案

    - 动态游标:允许在打开游标时动态设定SQL语句,更灵活,适用于未知或变化的查询。 5. 动态执行SQL语句的游标: - 动态游标通过Ref Cursor类型实现,如示例所示,声明一个Ref Cursor类型的变量,然后在运行时通过...

    oracle包用存储过程图分页

    - 最后打开游标返回结果集。 #### 四、前端分页展示 在前端部分,通过Java代码实现了简单的分页导航和页面跳转功能。这部分代码主要用于展示分页按钮和处理用户的分页请求。 ### 总结 通过以上步骤,我们成功地在...

    Oracle常用异常代码

    当使用无效的游标时触发此异常,可能是因为游标尚未被正确打开。 **解决方法:** - 确保在使用游标之前已正确打开它。 - 检查游标的打开状态和使用方式。 #### 7. INVALID_NUMBER (ORA-01722) **异常描述:** 当...

    oracle异常处理

    6. `Invalid_cursor` (ora-01001):在非法游标上执行操作,如未打开游标即尝试提取数据。 7. `Invalid_number` (ora-01722):尝试将非法字符串转换为数字。 8. `No_data_found` (ora-01403):SELECT INTO 未返回任何...

    oracle常见Exception

    1. **确保游标正确打开**:在执行任何读取或写入操作前,确认游标是有效的且处于打开状态。 2. **错误处理**:通过捕获异常并进行相应的错误处理来防止程序崩溃。 #### DUP_VAL_ON_INDEX (ORA-00001) **异常描述:...

    oracle数据库的表数据导出为csv文件

    - 捕获并处理可能出现的异常情况,如超出定义列范围时跳出循环。 #### 四、总结 通过上述分析,我们可以了解到利用Oracle PL/SQL编写存储过程或函数来实现表数据导出为CSV文件的具体步骤。这种方式不仅能够提高...

    HS_data.rar_c++ 写入 oracle_oracle_写入oracle

    标题中的"HS_data.rar_c++ 写入 oracle_oracle_写入oracle"表明这是一个关于使用C++编程语言将数据从文本文件(可能是HS_data.txt)读取并存储到Oracle数据库的项目。描述进一步说明了该过程是在vc++6.0集成开发环境...

Global site tag (gtag.js) - Google Analytics