ORA-01001:无效的光标

时间:2010-03-05 08:04:41

标签: sql oracle

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

我需要知道何时可以在更新查询中使用ORA-01001: invalid cursor。我做了一些谷歌搜索,发现有两种可能导致此错误:

  1. 打开的游标数量是否大于允许的MAXCURSOR?
  2. 无需打开游标即可尝试获取。
  3. 有没有人遇到我上面描述过的同样的问题?请提出解决方案。

1 个答案:

答案 0 :(得分:3)

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

考虑到您使用两种不同的环境(dev / prod),您是否确认MAXCURSOR参数相同(或者Prod MAXCURSOR> Dev MAXCURSOR)?

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

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