ORA-00604: 递归 SQL 级别 1 出现错误 ORA-01000: 超出打开游标的最大数

时间:2025-01-18 10:03:38

有程序没关闭游标,

--打开了哪些游标
select * from v$open_cursor

在open cursor之后一定要注意要close cursor(在store procedure里更应该如此,可能跳到exception里去了,exception里也要close cursor)

这样的错误很容易出现在Java代码中的主要原因是:Java代码在执行conn.createStatement()和 conn.prepareStatement()的时候,实际上都是相当与在数据库中打开了一个cursor。尤其是,如果你的 createStatement和prepareStatement是在一个循环里面的话,就会非常容易出现这个问题。因为游标一直在不停的打开,而且没有关闭。

show parameter open_cursors;

alter system set open_cursors=1000 scope=both;

ORA-00604: 递归 SQL 级别 1      出现错误 ORA-01000: 超出打开游标的最大数