更新 Oracle 中地理数据库的 open_cursors 设置

默认情况下,地理数据库假定 Oracle open_cursors 设置为 300。由于地理数据库无法访问对 Oracle 数据库设置的 open_cursors 值;因此,如果未将 Oracle 数据库 open_cursors 参数的值设置为 300,请执行 sde.gdb_util.update_open_cursors 存储过程来同步地理数据库及其所属 Oracle 数据库的 open_cursors 设置。

提示:

sde.gdb_util.update_open_cursors 存储过程可更新 sde 地理数据库资料档案库以及 Oracle 数据库中所含任何用户方案地理数据库中存储的 open_cursors 参数。因此,无需针对用户方案地理数据库单独运行此过程。

如果您没有同步 Oracle 数据库和地理数据库之间的 open_cursors 设置,则需要多个游标的操作可能会失败。

sde.gdb_util.update_open_cursors 存储过程将在地理数据库中显示。请按照以下步骤使用存储过程同步 open_cursors 设置:

  1. 使用 sys 作为 sysdba 从 SQL 客户端连接到地理数据库。
  2. 如果您的地理数据库位于 Oracle 12c 或更高版本的数据库中,则必须向 sde 用户授予权限才能运行 sde.gdb_util.update_open_cursors 存储过程。

    GRANT INHERIT PRIVILEGES ON USER SYS TO SDE;

  3. 执行 sde.gdb_util.update_open_cursors 存储过程。

    EXECUTE sde.gdb_util.update_open_cursors;

  4. 可以撤消在步骤 2 中授予 sde 用户的 inherit 权限。

    REVOKE INHERIT PRIVILEGES ON USER SYS FROM SDE;

现在,数据库和地理数据库的 open_cursors 设置已同步。

如果您要在将来更新数据库中的 Oracle open_cursors 设置,可再次运行此存储的程序以更新地理数据库中的此设置。