CREATE MLE MODULE

目的

マルチリンガル・エンジン(MLE)を使用すると、開発者は、MLEモジュールを使用してJavaScriptをカプセル化することで、Linux x86-64のOracle Database 23cでJavaScriptコードの記述、格納および実行ができるようになります。

CREATE MLE MODULEは、データベースに新しいMLEモジュールを作成する場合に使用します。

関連項目:

JavaScript開発者ガイド

前提条件

自分のスキーマ内のMLEモジュールを作成または置換する場合は、CREATE MLE権限が必要です。また、別のユーザーのスキーマ内のMLEモジュールを作成または置換する場合は、CREATE ANY MLE権限が必要です。

セマンティクス

OR REPLACE

OR REPLACEを指定すると、既存のモジュールを再作成できます。この句を使用すると、以前に付与したオブジェクト権限を削除、再作成、再付与することなく、既存のモジュール定義を変更できます。

IF NOT EXISTS

IF NOT EXISTSを指定すると、次の効果が得られます。

  • MLEモジュールが存在していない場合は、文の最後に新しいMLEモジュールが作成されます。

  • MLEモジュールが存在している場合、これは文の最後の時点にあるMLEモジュールになります。古いものが検出されるため、新しいものは作成されません。

単一の文には、一度に1つのOR REPLACEまたはIF NOT EXISTSを指定できます。同じ文でOR REPLACEIF NOT EXISTSの両方を使用すると、ORA-11541: REPLACE and IF NOT EXISTS cannot coexist in the same DDL statementというエラーが発生します。

schema

schemaは、モジュール名を完全修飾する場合に使用します。schemaを指定しない場合は、現行のスキーマが使用されます。

モジュール名の長さは、128バイト以下にする必要があります。MLEモジュールでは、表およびプロシージャと同じ名前空間を使用します。

LANGUAGE、VERSION

LANGUAGEは、作成したモジュールのMLE言語を指定する場合に使用します。JavaScriptモジュールを作成する場合は、値JAVASCRIPTを使用する必要があります。サポートされていないMLE言語が使用されている場合は、ORA-04101エラーがスローされます。

オプションのVERSION句では、MLEモジュールのバージョン文字列を指定します。バージョン文字列は単なる情報であり、MLEまたはRDBMSの動作には影響がありません。バージョン文字列は、VARCHAR2(256)に収まることが必要です。

CLOB、BLOB、BFILE

USINGは、CLOBBLOBまたはBFILEに格納されたコードからMLEモジュールを作成する場合に使用します。

BFILE句では、副問合せまたはディレクトリ(directory_object_nameserver_file_nameを使用)を併用することで、使用するMLEモジュールのディレクトリとファイル名を指定できます。このステップの前に、CREATE DIRECTORYを使用してディレクトリ・オブジェクトを作成しておく必要があります。

CLOB | BLOB | BFILE句で指定する副問合せは、その結果が指定されたタイプ(CLOBBLOBまたはBFILE)の単一行および列であり、デプロイするMLEモジュールの内容を保持していることが必要です。CLOBオプションは、MLEモジュールにテキスト・データが含まれている場合にのみ使用できます。BLOBおよびBFILEに格納されたMLEモジュールのテキスト・データは、UTF-8にエンコードされています。

AS

ASは、MLEモジュールの内容をインライン化された文字のシーケンスとしてDDL文で指定する場合に使用します。CLOBと同様に、AS句は、MLEモジュールのソースにテキスト・データが含まれている場合にのみ使用できます。文字シーケンスは引用符で囲まないでください。この文字シーケンスは、DDL文の末尾で区切られます。