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

2019年10月3日20:20:25
评论

今天Oracle突然抛出了一个异常:maximum open cursors exceeded
从字面意思很容易可以看出是由于游标打开过多而没有正常关闭导致超出系统默认的游标打开的最大连接数
但要具体查出是哪一行代码有问题,还真不是一件简单的事,上万行的代码真不是吹出来的。
老生常谈的事情,大家平时开发的时候多注意一下也就可以避免了,不然真正等到最后提交代码的时候
突然抛出来,还是蛮打击人的。

关于Java开发中使用Oracle数据库的一点注意事项
很多朋友在Java开发中,使用Oracle数据库的时候,经常会碰到有ORA-01000: maximum open cursors exceeded.的错误。

实际上,这个错误的原因,主要还是代码问题引起的。
ora-01000: maximum open cursors exceeded.
表示已经达到一个进程打开的最大游标数。

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

企鹅博客
  • 本文由 发表于 2019年10月3日20:20:25
  • 转载请务必保留本文链接:https://www.qieseo.com/146302.html

发表评论