A MLEの型変換
JavaScriptと、PL/SQL、SQLおよびJSONのデータ型の間のサポートされている変換。
JavaScriptのターゲット型には、ネイティブのJavaScript型とSQLラッパー型の両方が含まれます。サポートされるSQL型は、デフォルトで類似のJavaScript型に変換されます(このような自然に対応するものが存在する場合)。変換が試行されたが対応するJavaScript型がなかった場合、ネイティブJavaScript型への変換はサポートされず、かわりに値は対応するSQLラッパー型にデフォルトで変換されます。
ノート:
MLEでは、カスタマイズされたデータベース文字表現からJavaScript (UTF-16)の組込み文字列表現への変換の間に発生する可能性がある情報損失を防ぐ機能は提供されません。関連項目:
-
PL/SQLとJavaScript間で値を交換する際に
mle-js-bindings
を使用してデフォルト・マッピングを変更する方法の詳細は、サーバー側JavaScript APIのドキュメントを参照してください mle-js-plsqltypes
を使用してOracleNumber
などのSQLラッパー型を作成する方法の詳細は、サーバー側JavaScript APIのドキュメントを参照してくださいSELECT
文から列値をフェッチする際にmle-js-oracledb
を使用してデフォルトの変換(表A-1を参照)をオーバーライドする方法の詳細は、サーバー側JavaScript APIのドキュメントを参照してください
日付変換
JavaScriptのDate
は、時点(つまり、一瞬の時間)を表します。変換は、時点型Date
と、タイムゾーン情報がないPL/SQL型DATE
およびTIMESTAMP
の間で可能です。JavaScript側の時点と、相手側のDATE
およびTIMESTAMP
の間の変換は、次のように処理されます:
-
Date
をTIMESTAMP
またはDATE
に変換すると、時点は現行セッションのタイムゾーンのタイムゾーン対応データ時間値に変換されます。この値のローカルのデータ時間部分は、ターゲットのDATE
またはTIMESTAMP
値に格納されます。 -
TIMESTAMP
またはDATE
をタイムゾーン対応のDate
に変換するために、ソースの日時値がセッションのタイムゾーンで解釈され、セッションのタイムゾーンに従って時点に変換されます。
表A-1 SQL型およびPL/SQL型からJavaScript型へのサポートされているマッピング
SQL型 | JavaScript型(太字フォントはデフォルトを示します) |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
すべて(オブジェクト、配列、null)脚注3 |
脚注1 BINARY_INTEGER
はPL/SQL型であり、SQLではサポートされていません。MLEでは、PL/SQLインタフェース上のBINARY_INTEGER
のみをサポートします。
脚注2 厳密には型ではありませんが、MLEではSQLのNULL
値をJavaScriptのnull
値(またはその逆)に変換します。これは、データベースに渡される値が存在しないことを、JavaScriptでデータベースに示すためです(たとえば、ファンクションの戻り値またはSQL文のIN
バインド)。
脚注3詳細は、「MLE JavaScriptでのJSONのサポート」を参照してください
表A-2 JavaScript型からSQL型へのサポートされているマッピング
JavaScript型 | SQL型 |
---|---|
|
|
|
|
|
|
|
BINARY_INTEGER |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
UintArray |
|
|
|
|
|
|
|
|
|
|
|
|
|
オブジェクト脚注4 |
JSON脚注5 |
脚注4 前述のクラスのいずれとも一致しないJavaScriptオブジェクトおよび配列
脚注5詳細は、「MLE JavaScriptでのJSONのサポート」を参照してください
- MLE JavaScriptでのJSONのサポート
JavaScriptとJSONデータ型の間の変換がサポートされます。 - MLEのJavaScriptでのVECTORデータ型のサポート
Oracle Multilingual Engine (MLE)では、JavaScriptのTypedArraysとSQLベクトルの間のINT8
、FLOAT32
およびFLOAT64
形式の変換がサポートされています。JavaScriptデータ型とVECTOR
データ型間のデータ交換は、MLE JavaScript SQLドライバ、MLEコール仕様およびMLE JavaScriptバインディングによってサポートされます。