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
など)を指定せずに実行すると、エラーが発生します。