ORA-01001:无效的光标

Sac*_*iya 5 sql oracle

ORA-01001: invalid cursor在批量处理大量事务的生产中遇到oracle错误.但是,相同的代码在开发中工作正常.

我需要知道何时可以ORA-01001: invalid cursor在更新查询中.我做了一些谷歌搜索,发现有两种可能性来获取此错误:

  1. 打开的游标数量大于MAXCURSOR允许的数量?
  2. 在不打开游标的情况下尝试获取.

有人遇到过我上面描述的同样的问题吗?请建议解决方案.

p.m*_*ino 3

是的,这些是常见原因(如果您还没有,请参阅此内容)。

考虑到您正在使用两个不同的环境(开发/产品),您是否已验证 MAXCURSOR 参数是否相同(或 Prod MAXCURSOR > Dev MAXCURSOR)?

您还应该调查您的批处理过程,看看数据数量是否会导致您的过程在产品中打开更多游标。示例:您的批处理为部门表中的每个部门代码启动一个存储过程,并且此过程的每个实例都会打开 N 个游标。

如果你有 - 比如说 - 3 dep。dev 中的代码,因为它足以满足您的测试,而 Prod 中的 34 个部门代码,您可以使用 10 倍光标并得到相同的情况......