Sql ORA-01001:无效的游标

Sql ORA-01001:无效的游标,sql,oracle,Sql,Oracle,我在批量处理大量事务的生产中遇到oracle错误ORA-01001:无效游标。然而,同样的代码在开发中工作良好 我需要知道更新查询中何时可以有ORA-01001:invalid cursor。我在谷歌上搜索了一下,发现有两种可能会出现这种错误: 打开的游标数大于允许的MAXCURSOR数 在不打开光标的情况下尝试获取 有没有人遇到过与我上面描述的相同的问题?请提出解决方案。是的,这些是常见的原因(如果您还没有) 考虑到您使用的是两个不同的环境(dev/prod),您是否验证了MAXCURSOR参

我在批量处理大量事务的生产中遇到oracle错误ORA-01001:无效游标。然而,同样的代码在开发中工作良好

我需要知道更新查询中何时可以有
ORA-01001:invalid cursor
。我在谷歌上搜索了一下,发现有两种可能会出现这种错误:

  • 打开的游标数大于允许的MAXCURSOR数
  • 在不打开光标的情况下尝试获取

  • 有没有人遇到过与我上面描述的相同的问题?请提出解决方案。

    是的,这些是常见的原因(如果您还没有)

    考虑到您使用的是两个不同的环境(dev/prod),您是否验证了MAXCURSOR参数相同(或者prod MAXCURSOR>dev MAXCURSOR)

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


    如果你在dev中有-say-3个部门代码,因为它对于你的测试来说已经足够了,而在Prod中有34个部门代码,那么你可以使用光标的10倍,得到相同的情况…

    @marino,MAXCURSOR在生产和开发环境中都是相同的。数据也一样吗?假设您没有正确地释放游标,如果您在prod中完成了更多的“工作”,您将更快地耗尽它们。在什么情况下,Oracle会对不涉及游标的select查询引发此异常?Hibernate在运行条件查询时在我的应用程序中引发此异常。