MLE JavaScriptでのJSONのサポート
JavaScriptとJSONデータ型の間でサポートされる変換。
SQLのJSON型の値は、JavaScript値と相互に変換できます。SQLのJSON型とJavaScript値の間の型マッピングは、node-oracledbドライバで使用される型マッピングと連携しています。
SQLのJSON型の値は、次のようにJavaScript値に変換されます:
-
JSON値がオブジェクトの場合、入力オブジェクトのすべてのフィールドを変換することで同等のJavaScriptオブジェクトに変換されます。 -
JSON値が配列の場合、入力配列のすべての要素を変換することで同等のJavaScript配列に変換されます。 -
JSON値がスカラー値の場合、表A-3の型マッピングに従って同等の値に変換されます。
表A-3 JSON属性の型と値からJavaScriptの型と値へのマッピング
| JSON属性の型または値 | JavaScriptの型または値 |
|---|---|
null |
null |
false |
false |
true |
true |
NUMBER |
Number |
VARCHAR2 |
String |
RAW |
Uint8Array |
CLOB |
String |
BLOB |
UintArray |
DATE |
Date |
TIMESTAMP |
Date |
INVERVAL YEAR TO MONTH |
OracleIntervalYearToMonth |
INTERVAL DAY TO SECOND |
OracleIntervalDayToSecond |
BINARY_DOUBLE |
Number |
BINARY_FLOAT |
Number |
| 配列(複数) | 配列(単一) |
| オブジェクト(複数) | 単一のプレーンなJavaScriptオブジェクト |
JavaScript型の値は、次のようにSQLのJSON型に変換されます:
-
JavaScript値が表A-4の最初の列のスカラー型のいずれかと一致する場合は、対応する型のJSON値に変換されます。
-
JavaScript値が配列の場合、配列のすべての要素を変換することで、JSON配列に変換されます。
Uint8Array値は配列ではなくスカラーとして扱われるため、Uint8Array値はJSON配列ではなくRAW型に変換されます。 -
JavaScript値がオブジェクトであり、配列ではなく、表A-4にリストされているJavaScript型/クラスのいずれにも一致していない場合は、JSONオブジェクトに変換されます。オブジェクトの各フィールドは、適切なマッピングに従って変換されます。
表A-4 JavaScriptの型と値からJSONの属性と値へのマッピング
| JavaScriptの型または値 | JSON属性の型または値 |
|---|---|
null |
null |
undefined |
null |
string |
VARCHAR2 |
true |
true |
false |
false |
Uint8Array |
RAW |
Number |
NUMBER |
Date |
DATE |
OracleNumber |
NUMBER |
OracleDate |
DATE |
OracleTimestamp |
TIMESTAMP |
OracleTimestampTZ |
TIMESTAMP WITH TIME ZONE |
OracleIntervalYearToMonth |
INVERVAL YEAR TO MONTH |
OracleIntervalDayToSecond |
INTERVAL DAY TO SECOND |
| 配列(単一) | 配列(単一) |
| オブジェクト(単一) | オブジェクト(単一) |
親トピック: MLEの型変換