標準のJavaScriptデータ型が使用可能で、Oracle Data Relationship Managementでは、可能な場合には常にそれらが使用されます。たとえば、日付はDateオブジェクトを使用して表されます。関数はそれ自体がオブジェクトであり、newで呼び出された関数は、ECMA準拠のJavaScript環境と同じように、プロトタイプが関数のコンストラクタ・プロトタイプを指すオブジェクトを作成します。
注:
JavaScript Document Object Model (DOM)オブジェクトは、Data Relationship Managementスクリプトではサポートされていません。
どのメソッドが使用可能であるかも含め、JavaScript構文および組込みオブジェクトに精通している必要があります。使用可能なデータ型の一部を示します:
Array––length、pop、push、concat、join、reverse、slice、shift、sortなどが含まれます
注:
キャッシング・メカニズムによるJavaScriptのアイテムのボックス化の変更により、すべてのArray関数が予期したとおりにまたは以前のリリースと同様に動作するわけではなくなりました。たとえば、JavaScriptのindexOfは、アイテムの文字列またはテキスト値ではなく、メモリーの場所に基づいてオブジェクトを比較します。そのため、配列を調べる際には、他の手法の使用を検討する必要があります。IndexOf()では、JavaScriptの===比較を使用し、使用可能な==の単一の定義はありません。JavaScriptの設計パターンを使用すると、==形式の比較を行うための独自のspecialIndexOf()を実装できます。
Boolean––TrueおよびFalseを表します
Date––Date.parse()、month、day、yearなどが含まれます
Error––try/catchエラー処理を使用して、エラー・メッセージにアクセスします
Function––標準のcallおよびapply機能がサポートされています
Math––random、max、pow、round、sin、cos、floor、sqrt、logなどが含まれます
Number––JavaScriptのすべての数値は、不動小数点型の数値です
RegExp––正規表現の言語サポートを使用することも、明示的にアクセスすることも可能です
String––concat、indexOf、lastIndexOf、substr、split、splice、search、replace、toUpperCase、toLowerCaseなどが含まれます
グローバルに使用可能なparseInt、parseFloat、isNaN、decodeURI、encodeURIなどの関数も使用きます。
Print関数
Print関数を使用すると、スクリプトの作成中にデバッグ情報を出力できます。結果は、スクリプト・エディタの「警告」セクションに表示されます。Print関数で生成されるのはテスト・コンテキストの出力のみですが、エンジンでは引数を構成する必要があります; そのため、本番用にスクリプトを保存する前に、print文をすべてコメント・アウトしてください。
Format関数
Format関数は、標準のJavaScriptよりもはるかに豊富な文字列のフォーマット・メカニズムを備えています。最初のパラメータは、中カッコで囲まれたフォーマット指定子を含む文字列です。カッコを二重にするとエスケープされます。たとえば、「{{」は「{」と出力されます。フォーマット指定子はゼロから始まり、増分的に増えていきます。シーケンスから指定子を除外すると、Format関数と同等のパラメータが無視されます。たとえば、「{1}」ではFormatに対する最初の値パラメータが無視され、2番目が使用されます。
簡単な方法が1つあります。Formatを呼び出し、カッコなしでフォーマット指定子を渡して、引数を1つのみ渡すことができます。結果は、Format("{0:<specifier>", <argument>)と同一です
フォーマット指定子は、JavaやC#など、その他の言語と同じように機能します。構文は{<paramnum>}または{<paramnum>;<format>}で、paramnumはゼロから始まる正の整数であり、連続して増加します。フォーマット・パラメータは、パラメータとして渡されるオブジェクトのタイプによって異なります。
フォーマット・パラメータは、一般的に、ユーザーのロケールに適した値を戻します; たとえば、米国では「{0:0.00}」は「1.23」を戻し、ヨーロッパでは「1,23」を戻します。または、エスケープのサポートを使用して、ロケールを明示的に上書きし、すべてのユーザーに同じ値を出力できます。たとえば、「#\,###\,##0」は、カルチャの設定に関係なく、すべての地域でカンマを3桁ごとの区切り文字として使用し、数値をフォーマットします。