9.14 MLE

MLEコマンドを使用して、JavaScriptライブラリをMLEモジュールとしてデータベースにロードします。

次のサブコマンドがあります:

前提条件

このコマンドには次のものが必要です:

  • Oracle Databaseリリース23ai。
  • create-moduleサブコマンドにはCREATE TABLE権限が必要です。別のスキーマにモジュールを作成する場合は、CREATE ANY TABLE権限が必要です。

  • 『Oracle Database JavaScript開発者ガイド』に記載されているシステム権限。

9.14.1 モジュールの作成

MLEモジュールを作成します。

構文

mle create-module {OPTIONS}

オプション

オプション 説明
必須
-filename <filename> 有効なJavaScriptファイルへのパスを指定します。
-module-name <module> 現在のスキーマ内に作成するモジュールの名前を指定します。
オプション
-bundler <bundler> {rollup} JavaScriptファイルをその依存性とバンドル可能な、サポートされているプログラムの名前を指定します。「外部依存性があるJavaScript」を参照してください。
-bundler‑config <bundler‑config> {file} バンドル・プログラム用の構成ファイルの名前を指定します。
-if-not-exists モジュールを作成します(それが存在しない場合のみ)。
-language <language> サポートされているプログラミング言語の名前を指定します。デフォルト値はJavaScriptです。
-metadata <metadata> そのモジュールを説明する有効なJSONテキストを指定します。このオプションは-metafileと相互に排他的です。
-metafile <metafile> そのモジュールを説明する有効なJSONファイルへのパスを指定します。このオプションは-metadataと相互に排他的です。
-sbom <sbom> {syft} ソフトウェア部品表を作成可能な、サポートされているプログラムの名前を指定します。
-replace そのモジュールが存在する場合は置き換え、存在しない場合は作成します。
-schema <schema> そのモジュールを所有する代替スキーマの名前を指定します。
–verbose コマンドの進行に合わせてさらに診断情報を出力します。
–version <version> プログラミング言語のバージョンを指定します。

外部依存性があるJavaScript

「モジュールの作成」サブコマンドでは、他のJavaScriptモジュールを参照するJavaScriptファイルをロードできます。これを実現するために、MLEコマンドでは、指定したJavaScriptファイルがその依存性すべてとバンドルされ、外部のrollupコマンドが使用されます。

  • rollupとsyftのインストール

    外部依存性をバンドルするには、rollupをインストールします。SBOM (ソフトウェア部品表)の場合は、syftをインストールします。どちらの場合も、brew installを使用できます。

  • rollup実行の構成

    バンドリングの目的となる用途は、外部依存性がある単一のJavaScriptファイルをバンドルすることです。たとえば、バンドリングで1つ以上の外部依存性を除外する必要がある場合は、-bundler‑configオプションで指定した構成ファイル内で、そのような除外を指定します。すべてのバンドリングに構成が必要なわけではありません。どのような場合でも(構成ファイル内で入力ファイル名が指定されている場合でも)、バンドルする単一のJavaScriptファイルを必ず‑filenameオプションで指定します。

  • 依存性の変更

    a.jsからMLEモジュールを作成し、c.jsを変更した後に、b.jsから別のMLEモジュールを作成した場合は、2つのMLEモジュールと、変更された依存性c.jsがあります。これを回避するには、3つのMLEモジュールを作成しバンドリングを回避するように、コードを再編成します。

  • デバッグ

    ホスト・コマンド(-bundlerオプションを使用)によって、バンドルされているJavaScriptファイルが作成された場合、結果となるJavaScriptファイルは、ファイル・システムに存在する内容を正確に表現したものではありません。そのため、MLEモジュールの実行にデバッガをアタッチした場合に、表示している外部JavaScriptファイルと行番号がわかりません。

9.14.2 モジュールの変更

既存のMLEモジュールを変更します。

構文

mle alter-module {OPTIONS}

オプション

オプション 説明
必須
-module-name <module> 現在のスキーマにある変更するモジュールの名前。
-metadata <metadata> そのモジュールを説明する有効なJSONテキスト。このオプションは-metafileと相互に排他的です。
-metafile <metafile> そのモジュールを説明する有効なJSONファイルへのパス。このオプションは-metadataと相互に排他的です。
オプション
-if-exists そのモジュールが存在する場合のみ、そのモジュールを変更します。
–verbose コマンドの進行に合わせてさらに診断情報を出力します。
-schema <schema> そのモジュールを所有する代替スキーマの名前。

  • メタデータを更新しモジュール名を指定することで、既存のMLEモジュールを変更します。
    SQL> mle alter-module -metadata '{"name":"getOrderTotal", "version":"1.1"}' -module-name abc
  • MLEモジュールのメタデータを表示します。
    SQL> select metadata from user_mle_modules where module_name = 'ABC'