什么Oracle设置阻止打开游标关闭?

时间:2013-11-28 14:15:37

标签: oracle cursor

我有两个Oracle 11G安装。我可以运行一个脚本,将37MB数据库导入其中一个没有问题(安装A)。在另一个(安装B)中,当我使用完全相同的文件运行完全相同的脚本时,它获得“ORA-01000:超出最大打开游标数”。我将最大打开游标增加到20,000,但是当脚本达到20,000行时,它会因相同的ORA-01000错误而停止。正在运行的安装将最大打开游标设置为300.

显然,脚本或SQL没有问题,因为它可以在一个Oracle数据库中运行。因此,在另一个Oracle实例中必须有一个设置阻止打开游标关闭。它可能是什么?

安装A有效。 数据库= Oracle Oracle Database 11g企业版11.2.0.1.0版 - 64位生产 使用分区,OLAP,数据挖掘和实际应用程序测试选项。 Driver = Oracle JDBC驱动程序11.2.0.1.0。

安装B不起作用。 数据库= Oracle Oracle数据库11g企业版11.2.0.3.0版 - 64位生产 使用分区,自动存储管理,OLAP,数据挖掘 和Real Application Testing选项。 Driver = Oracle JDBC驱动程序11.2.0.3.0。

1 个答案:

答案 0 :(得分:0)

我建议检查会话中打开的游标。如果您看到10.000语句,所有类似的,使用打开的游标,代码中都有问题。

我自己找到了最简单的方法:

connect sys

alter system flush shared_pool; /* Removes everything can be finished, the trees hinder my view of the forest. */

/* Overall overview. */
select *
from v$sqlarea

/* Open cursors per session. */

select *
from v$open_cursor