【发布时间】:2012-08-27 08:48:22
【问题描述】:
我在我的 java 代码中使用循环将行插入到我的数据库中。然后,我得到了错误 -
ORA-01000: maximum open cursors exceeded
我搜索了一下,发现在添加每一行后关闭我准备好的语句或语句有助于消除错误。
但是,我需要明白——
- 什么是游标?
- 我可以更改游标的数量吗?如果是,这是一件好事吗?
【问题讨论】:
-
显然您没有正确关闭语句/游标。
-
关于“在添加每一行后关闭我的准备好的语句或语句有帮助”:如果是这样,那么你在循环中做了一些不好的事情,比如在每次迭代中重新创建 PreparedStatement 左右。一条规则是,您应该在创建的所有内容(语句、结果集等)上调用 close,但您还应该确保正确使用它们。在插入循环中,在大多数情况下,您希望重用在循环之前创建并在之后关闭的准备好的语句。增加打开游标的最大数量将“帮助”但不能解决问题,并且您将在以后遇到问题。
-
@a_horse_with_no_name - 你能推荐一些链接来教我如何正确关闭游标吗?