動的実行の概要
匿名JavaScriptコード・スニペットは、DBMS_MLE PL/SQLパッケージを介して実行できます。
動的MLEスニペットを実行するには、プロシージャDBMS_MLE.eval()を使用します。このプロシージャは次の引数を使用します:
| 引数名 | 型 | オプションかどうか |
|---|---|---|
CONTEXT_HANDLE |
RAW(16) | いいえ |
LANGUAGE_ID |
VARCHAR2(64) | いいえ |
SOURCE |
CLOB | いいえ |
RESULT |
CLOB | はい |
SOURCE_NAME |
VARCHAR2 | はい |
引数SOURCE_NAMEは、本来であればランダムに命名されるJavaScriptコード・ブロックの名前を指定するために、オプションで使用します。
JavaScriptコードは、次のコードに示すように、PL/SQLにインラインで指定できます:
SET SERVEROUTPUT ON;
DECLARE
l_ctx DBMS_MLE.context_handle_t;
l_jscode CLOB;
BEGIN
l_ctx := DBMS_MLE.create_context;
l_jscode := q'~
console.log('Hello World, this is DBMS_MLE')
~';
DBMS_MLE.eval(
context_handle => l_ctx,
language_id => 'JAVASCRIPT',
source => l_jscode,
source_name => 'My JS Snippet'
);
END;
/この例を実行すると、次のように出力されます:
Hello World, this is DBMS_MLE前述のコードは、JavaScriptコードの動的な起動に関する次の概念を示しています:
-
実行コンテキストは、明示的に作成する必要があります
-
JavaScriptコードは、キャラクタ・ラージ・オブジェクト(CLOB)または
VARCHAR2変数として指定します -
コンテキストは、明示的に評価する必要があります
JavaScriptを動的に実行するときには、PL/SQLとJavaScriptの両方が存在します。指定されたコード・スニペットをネームスペースの外部で再使用することはできません。console.logへのコールの出力は、画面に出力するためにDBMS_OUTPUTに渡されます。
関連項目:
-
MLEを使用した動的実行の詳細は、「動的MLE実行の概要」を参照してください
- プロシージャ
DBMS_MLE.eval()のRESULT引数の詳細は、「最終実行の結果の戻し」を参照してください
親トピック: JavaScriptのマルチリンガル・エンジンの概要