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