我在批量处理大量事务的生产中收到一个oracle错误ORA-01001: invalid cursor
。但是,相同的代码在开发中也可以正常工作。
我需要知道何时可以在更新查询中包含ORA-01001: invalid cursor
。我进行了一些谷歌搜索,发现有两种可能会出现此错误:
有人遇到过我上面描述的相同问题吗?请提出解决方案。
最佳答案
是的,这些是常见原因(如果还没有,请参见this)。
考虑到您正在使用两个不同的环境(dev/prod),您是否已验证MAXCURSOR参数相同(或Prod MAXCURSOR> Dev MAXCURSOR)?
您还应该调查批处理过程,并查看数据量是否会导致您的过程在生产中打开更多的游标。示例:您的批次为部门表中的每个部门代码启动一个存储过程,该过程的每个实例都打开N个游标。
如果您有-说-3副。开发人员代码,因为它足以满足您的测试要求,而Prod中有34个部门代码,则您可以使用光标的10倍来获得相同的结果...