デフォルトでは、ジオデータベースは Oracle open_cursors が 300 に設定されていると想定しています。ジオデータベースからは Oracle データベース用に設定された open_cursors 値にアクセスできません。Oracle データベースの open_cursors パラメーターを 300 以外の値に設定する場合は、sde.gdb_util.update_open_cursors ストアド プロシージャを使用して、ジオデータベースの open_cursors 設定と、それが配置されている Oracle データベースの open_cursors 設定を同期します。
ヒント:
sde.gdb_util.update_open_cursors ストアド プロシージャが、sde ジオデータベース リポジトリに格納されている open_cursors パラメーターと、Oracle データベース内に存在するユーザースキーマ ジオデータベースを更新します。つまり、ユーザースキーマ ジオデータベースに対してプロシージャを別途実行する必要はありません。
Oracle データベースとジオデータベース間で open_cursors 設定を同期しない場合、複数のカーソルを必要とするアクティビティが失敗する可能性があります。
sde.gdb_util.update_open_cursors ストアド プロシージャがジオデータベース内に存在します。ストアド プロシージャを使用して open_cursors 設定を同期するには、次の手順に従います。
- sysdba に sys を使用して SQL クライアントからジオデータベースに接続します。
- お使いのジオデータベースが Oracle 12c 以降のリリースのデータベース内にある場合は、sde.gdb_util.update_open_cursors ストアド プロシージャを実行するための権限を sde ユーザーに付与する必要があります。
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 設定を更新する場合は、このストアド プロシージャを再度実行してジオデータベースの設定を更新します。