3.5 MLE環境の管理

MLE環境は、データベースで管理できるスキーマ・オブジェクトです。VS Code用のSQL Developer拡張機能では、MLE環境を作成、編集および削除できます。

MLEの詳細は、『Oracle Database JavaScript開発者ガイド』Oracle Database Multilingual Engineの概要を参照してください。

実行可能な操作を次に示します:

3.5.1 MLE環境の作成

MLE環境を作成するには:

  1. 「接続」パネルで、特定の接続について、「MLE環境」ノードにある「+」アイコンをクリックしてから、「作成」をクリックします。

    「作成」ペインが表示されます。
  2. 「MLE環境名」フィールドに、環境の名前を入力します。

    「SQL」ペインに、その新しいMLE環境用のDDLコードが表示されます。

  3. 「適用」をクリックします。

    空のMLE環境が作成され、「MLE環境」の下の「接続」パネルに表示されます。

3.5.1.1 MLE環境の作成の例

この例では、myfactorialenv MLE環境の作成と、factorial_mod JavaScriptモジュールをこの環境にインポートする方法を実際に示します。

  1. 「接続」パネルで、「MLE環境」を右クリックしてから、「作成」をクリックします。

    「作成」パネルが表示されます。

  2. 「MLE環境名」フィールドに、環境の名前myfactorialenvを入力します。

    「SQL」ペインに、その新しいMLE環境用のDDLコードが表示されます。

  3. 「適用」をクリックします。

    空のmyfactorialenv環境が作成され、「MLE環境」の下の左側のパネルに表示されます。

  4. 「接続」パネルで、「MLE環境」を展開し、myfactorialenvを右クリックして「インポートの追加」をクリックします。

    「インポートの追加」ペインが表示されます。

  5. 「モジュール名」フィールドで、インポートするモジュール(factorial_mod)を選択します。
  6. 「インポート名」フィールドに、インポートの名前を入力します。
  7. 「適用」をクリックします。

    インポートしたモジュールを表示するには、「接続」パネルで、myfactorialenvを右クリックして「開く」を選択します。そのMLE環境について、「エラー」、「権限」および「SQL」という3つのタブが表示されます。

    インポートしたモジュールが「インポート」パネルに表示されます。

3.5.2 MLE環境へのモジュールのインポート

選択したMLE環境にモジュールをインポートするには:

  1. 「接続」パネルで、そのMLE環境名を右クリックして「インポートの追加」を選択します。

    「インポートの追加」パネルが表示されます。

  2. 「モジュール名」フィールドに、作成したモジュール、または自分にアクセス権が付与されているモジュールがリスト表示されます。そのリストからモジュールを選択します。
  3. そのモジュールについて、「インポート名」に入力します。
  4. 「適用」をクリックします

3.5.3 MLE環境のコンパイル

MLE環境をコンパイルするには、「接続」パネルで、選択した環境名を右クリックして「コンパイル」を選択します。

接続のすべてのMLE環境をコンパイルするには、「接続」パネルで「MLE環境」を右クリックして「すべてコンパイル」を選択します。

無効なMLE環境をすべてコンパイルするには、「接続」パネルで、「MLE環境」を右クリックして無効なすべてをコンパイルを選択します。

3.5.4 MLE環境の削除

MLE環境を削除するには:

  1. 「接続」パネルで、選択したMLE環境を右クリックして「削除」を選択します。

    「削除」パネルが表示されます。

  2. 「適用」をクリックします。

3.5.5 実行後のデバッグ

MLE実行後デバッグを使用すると、Oracle Database内でMLEモジュールとして実行されるJavaScriptコードを、開発者がシームレスにトラブルシューティングして調整できます。この機能により、使い慣れたデバッグ・ワークフローを利用して、実行後のコードの動作に関する深いインサイトを得ることができます。

実行後のデバッグでは、次のことが可能です:

  • デプロイされたMLE JavaScriptモジュール内にブレークポイントを設定する。
  • デバッグ・セッションを開始および制御して、コード・フローを検査する。
  • コードをステップ・スルー(続行、ステップ・イン、ステップ・アウト)して、ロジックおよび実行パスを分析する。
  • 変数値と呼出しスタックを調べて、問題を効率的に診断および解決する。
  • 反復的な開発のためのデバッグ・セッションを停止または再起動する。

MLEモジュールのデバッグ

  1. MLE関数および起動スクリプトを準備します。
    • JavaScript関数がMLEモジュールに定義されていることを確認してください。
    • 関数を呼び出すデバッグ・ランナー・ファイルが必要です。デバッグ用のMLEモジュール・コードの起動を支援するサンプルDBMS_MLEスニペットが格納された新しいデバッグ・ランナー・ファイルを開くか、ローカル・ファイル・システムの既存のデバッグ・ランナー・ファイルを開くことができます。デバッグ・ランナー・ファイルについてを参照してください。


    mle_java_runnerfile.pngの説明が続きます
    図mle_java_runnerfile.pngの説明

  2. デバッグする前に、行番号の横の余白をクリックして、JavaScriptコードにブレークポイントを設定します。

    ノート:

    デバッグ・セッションを開始する前に、少なくとも1つのブレークポイントを設定する必要があります。デバッグ・セッションがアクティブになると、新しいブレークポイントを追加できません。さらに追加するには、現在のデバッグ・セッションを終了し、新しいブレークポイントを設定して、新しいセッションを開始してください。
  3. デバッグ・ランナー・ファイルとブレークポイントの準備ができたら、ツールバーのデバッグの開始 (「実行後のデバッグを開始」)アイコンを使用してデバッグ・セッションを開始します。

    一度に実行できるデバッグ・セッションは1つだけです。

    定義された各ブレークポイントで、実行が一時停止します。変数を検査したり、コール・スタックを表示したり、デバッグ制御ボタン(続行、ステップ・オーバー、ステップ・イン/アウト)を使用できます。すべてのブレークポイントをヒットするか、実行フローが終了すると、デバッグ・セッションは終了します。

デバッグ・ランナー・ファイルについて

デバッグ・ランナー・ファイル(通常はSQLワークシート)には、JavaScriptコードのデバッグを開始するためのロジックが含まれています。このファイルは、任意のデータベース接続に関連付けることができます。必要なすべてのデータベース・オブジェクト(MLEモジュール、環境、プロシージャ、関数など)が現在の接続に存在することを確認します。これらのオブジェクトが欠落していると、実行が失敗し、「スクリプト出力」パネルに(警告に加えて)エラー・メッセージが表示されます。これは、デバッグが開始する前に、その接続で起動コードが実行されるためです。

フィルタリングとブレークポイントの管理

「ブレークポイント」パネルには、開いているすべてのモジュールのすべてのブレークポイントがリストされます。各ブレークポイントは特定のデータベース接続に関連付けられており、ブレークポイントの横のファイル・パスまたはコンテキストにその接続が表示されます。選択した接続のブレークポイントのみを表示するようにリストをフィルタ処理できるので、デバッグ・セッションで、関連するモジュールを集中的に処理できます。

デバッグ・セッションで現在使用中のものとは異なる接続にブレークポイントがリンクされていると、そのブレークポイントは自動的に無効になります。無効なブレークポイントは、リストにグレー表示されます。無効なブレークポイントの上にカーソルを置くと、ブレークポイントのステータスの理由を説明するツールチップが表示されます。