18.1 シャード・データベースでのOracle Text PL/SQL APIの実行
SYS.EXEC_SHARD_PLSQLを使用して、特定のOracle Text CTXSYSプロシージャをすべてのシャードに伝播できます。SYS.EXEC_SHARD_PLSQLラッパーを使用して、シャード・データベース構成でDDL文が実行されるのと同じ方法で、すべてのシャードでターゲット・プロシージャを実行します。これらのプロシージャは、すべてのシャードに伝播され、カタログによって追跡され、新しいシャードが構成に追加されるたびに実行されます。
SYS.EXEC_SHARD_PLSQLラッパーを使用せずにターゲット・プロシージャを実行すると、そのプロシージャはシャード・カタログでのみ実行され、すべてのシャードに伝播されません。
SYS.EXEC_SHARD_PLSQLプロシージャは、単一のCLOB引数を取ります。これは、完全修飾プロシージャ名とその引数を指定する文字列です。
たとえば、すべてのシャードでCTXSYS.CTX_DDL.CREATE_PREFERENCEを実行するには:
exec sys.exec_shard_plsql('ctxsys.ctx_ddl.create_preference(
preference_name => "mylexer",
object_name => "BASIC_LEXER")');次の点に注意してください:
-
ある種のPL/SQLプロシージャにはラッパーが必要であり、その他のプロシージャには必要ではありません。許可されるPL/SQLプロシージャの詳細なリストは、「シャード・データベースでサポートされるAPI」を参照してください。
-
コールの指定自体は
SYS.EXEC_SHARD_PLSQLの文字列パラメータであるため、ターゲット・プロシージャ・コールの指定内で二重引用符(")を使用する必要があります。 -
SYS.EXEC_SHARD_PLSQLプロシージャを完全修飾名(CTXSYS.CTX_DDL.CREATE_PREFERENCEなど)を指定せずに実行すると、エラーが発生します。