JavaScript実装の詳細
JavaScriptのMLE実装は、ECMAScript 2023に準拠しています。
このECMA標準に従って、MLEに見られるJavaScript実装は、純粋な実装として意識的に作成されます。ネイティブJavaScriptネットワークおよびファイルI/O操作は、セキュリティ上の理由からNode.jsおよびDenoと同じ方法ではサポートされていません。MLEではネットワークおよびファイルI/Oを使用できますが、UTL_HTTPやUTL_FILEなどのPL/SQL APIを使用する必要があります。
WEB APIのFetchは、デフォルトではグローバル領域で使用できませんが、mle-js-fetchをインポートすることで有効にできます。
Windowオブジェクトなどのフロントエンド・コードで使用される共通オブジェクトを含め、ECMA標準に含まれていないオブジェクトもMLEでは使用できません。ただし、MLEでは、SQLへの簡単かつ効率的なアクセスが可能であり、それをデータの近くで実行できます。コンソール出力は、デフォルトではDBMS_OUTPUTに渡されますが、必要に応じてユーザー指定のCLOBにリダイレクトして格納できます。
ユーザーがMLEと対話するには、特定の権限が必要です。これらは、大まかに次のように分類できます:
-
MLEを使用し、JavaScriptコードを実行する権限
-
データベースでの動的JavaScriptの実行
-
JavaScriptモジュールの作成と、PL/SQLコードによるそれらの外部化
JavaScriptの使用に必要な十分な権限がない場合、データベース・エンジンはエラーをスローします。
関連項目:
権限の詳細は、「MLEでのJavaScriptの操作に必要なシステム権限およびオブジェクト権限」を参照してください
互換性のあるWeb API
JavaScript標準ライブラリ内で定義されている多数のWeb APIは、データベース内JavaScriptにおいて直接使用できます。次のリストには、サポートされているAPIと、それぞれで使用可能な特定のシンボルが含まれています。
各Web APIおよび関連するシンボルの詳細は、MDNドキュメントを参照してください。
URLAPI: URL、ドメイン、IPアドレス、application/x-www-form-urlencoded形式およびそれらのAPIを定義します。- URL
- URLSearchParams
StreamsAPI: 低レベルI/Oプリミティブに効率的にマップされるデータのストリームを作成、構成および消費するためのAPIを提供します。- ReadableStream
- ReadableByteStreamController
- ReadableStreamBYOBReader
- ReadableStreamBYOBRequest
- ReadableStreamDefaultReader
- ReadableStreamDefaultController
- WritableStream
- WritableStreamDefaultController
- ByteLengthQueuingStrategy
- CountQueuingStrategy
- TransformStream
- TransformStreamDefaultController
EncodingAPI: テキスト・エンコーディングとそれらのJavaScript APIを定義します。- TextEncoderStream
- TextDecoderStream
Compression StreamsAPI: バイナリ・データのストリームを圧縮および圧縮解除する一連のJavaScript APIを定義します。- CompressionStream
- DecompressionStream
Document Object Model (DOM)標準: イベント、中断アクティビティおよびノード・ツリーのための、プラットフォームに依存しないモデルを定義します。その他のAPI (たとえば、streams)は、イベント用と中断アクティビティ用のモデルに依存します。次の内容が実装されています:- DOMexception
- AbortSignal
- AbortController
- Event
- EventTarget
- CustomEvent
Windowインタフェース:- atob
- btoa
- navigator.useragent (ここでの
navigatorはオブジェクトであり、useragentの値は"OracleMLE"です) - queueMicrotask
- structuredClone
PerformanceAPI:- performance.now
- performance.timeOrigin
FileAPI: Webアプリケーション内のファイル・オブジェクトを表すためと、それらをプログラム的に選択するためと、それらのデータにアクセスするためAPIを提供します。- Blob (上限1 GB)
親トピック: JavaScriptのマルチリンガル・エンジンの概要