2016 - 2024

感恩一路有你

超出游标打开的最大数 ORA-01000:超出打开游标的最大数如何处理?

浏览量:2026 时间:2021-03-11 12:37:24 作者:admin

ORA-01000:超出打开游标的最大数如何处理?

出现这个错误的原因多是因为ResultSet或者是statement没有被及时关闭造成的。你JMeter测试的时候尽管OPEN_CURSORS降到了3,但是资源被正常关闭的情况下还是可以运行正常。

解决这个问题,可以用V$OPEN_CURSORVIEW来查看具体出问题的是哪些SQL,从而找到问题点。

SELECTSID,USER_NAME,SQL_TEXTFROMV$OPEN_CURSOR

执行上面的语句,查看哪些session打开了游标。

另外,由于ORA-01000错误,多半是多次循环处理中出现的问题,可以用如下SQL查看被多次发行的SQL

SQL>SELECTOC.SID,OC.USER_NAME,ST.SQL_TEXT,OC.NUM_CURSORS

2

FROMV$SQLST

3

INNERJOIN(

4

SELECTSID,USER_NAME,ADDRESS,HASH_VALUE,COUNT(*)NUM_CURSORS

5

FROMV$OPEN_CURSOR

6

GROUPBYSID,USER_NAME,ADDRESS,HASH_VALUE

7

HAVINGCOUNT(*)>1

8

)OC

9

ONOC.ADDRESS=ST.ADDRESS

10

ANDOC.HASH_VALUE=ST.HASH_VALUE

11

ORDERBYOC.SID

如果检索结果中NUM_CURSORS的数目很大,说明那条SQL发行的时候没有被正常关闭,从而找到问题点。

超出游标打开的最大数 游标引用超出范围 子程序或游标引用超出范围

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。