默认情况下,地理数据库假定 Oracle open_cursors 设置为 300。由于地理数据库无法访问对 Oracle 数据库设置的 open_cursors 值;因此,如果未将 Oracle 数据库 open_cursors 参数的值设置为 300,请执行 sde.gdb_util.update_open_cursors 存储过程来同步地理数据库及其所属 Oracle 数据库的 open_cursors 设置。
如果您没有同步 Oracle 数据库和地理数据库之间的 open_cursors 设置,则需要多个游标的操作可能会失败。
sde.gdb_util.update_open_cursors 存储过程将在地理数据库中显示。请按照以下步骤使用存储过程同步 open_cursors 设置:
- 使用 sys 作为 sysdba 从 SQL 客户端连接到地理数据库。
- 如果您的地理数据库位于 Oracle 12c 或更高版本的数据库中,则必须向 sde 用户授予权限才能运行 sde.gdb_util.update_open_cursors 存储过程。
GRANT INHERIT PRIVILEGES ON USER SYS TO SDE;
- 执行 sde.gdb_util.update_open_cursors 存储过程。
EXECUTE sde.gdb_util.update_open_cursors;
- 可以撤消在步骤 2 中授予 sde 用户的 inherit 权限。
REVOKE INHERIT PRIVILEGES ON USER SYS FROM SDE;
现在,数据库和地理数据库的 open_cursors 设置已同步。
如果您要在将来更新数据库中的 Oracle open_cursors 设置,可再次运行此存储的程序以更新地理数据库中的此设置。