A MLEの型変換

JavaScriptと、PL/SQL、SQLおよびJSONのデータ型の間のサポートされている変換。

JavaScriptのターゲット型には、ネイティブのJavaScript型とSQLラッパー型の両方が含まれます。サポートされるSQL型は、デフォルトで類似のJavaScript型に変換されます(このような自然に対応するものが存在する場合)。変換が試行されたが対応するJavaScript型がなかった場合、ネイティブJavaScript型への変換はサポートされず、かわりに値は対応するSQLラッパー型にデフォルトで変換されます。

ノート:

MLEでは、カスタマイズされたデータベース文字表現からJavaScript (UTF-16)の組込み文字列表現への変換の間に発生する可能性がある情報損失を防ぐ機能は提供されません。

関連項目:

日付変換

JavaScriptのDateは、時点(つまり、一瞬の時間)を表します。変換は、時点型Dateと、タイムゾーン情報がないPL/SQL型DATEおよびTIMESTAMPの間で可能です。JavaScript側の時点と、相手側のDATEおよびTIMESTAMPの間の変換は、次のように処理されます:

  • DateTIMESTAMPまたはDATEに変換すると、時点は現行セッションのタイムゾーンのタイムゾーン対応データ時間値に変換されます。この値のローカルのデータ時間部分は、ターゲットのDATEまたはTIMESTAMP値に格納されます。

  • TIMESTAMPまたはDATEをタイムゾーン対応のDateに変換するために、ソースの日時値がセッションのタイムゾーンで解釈され、セッションのタイムゾーンに従って時点に変換されます。

表A-1 SQL型およびPL/SQL型からJavaScript型へのサポートされているマッピング

SQL型 JavaScript型(太字フォントはデフォルトを示します)

NUMBER

number

OracleNumber

BINARY_FLOAT

number

BINARY_DOUBLE

number

BINARY_INTEGER脚注1

number

BOOLEAN

boolean

VARCHAR2

string

NVARCHAR2

string

CHAR

string

NCHAR

string

CLOB

OracleCLOB

string

NCLOB

OracleCLOB

string

BLOB

OracleBLOB

Uint8Array (TypedArray)

RAW

Uint8Array (TypedArray)

DATE

Date

OracleDate

TIMESTAMP

Date

OracleTimestamp

TIMESTAMPWITHTIMEZONE

Date

OracleTimestampTZ

TIMESTAMPWITHLOCALTIMEZONE

Date

OracleTimestampTZ

INTERVALYEARTOMONTH

OracleIntervalYearToMonth

INTERVALDAYTOSECOND

OracleIntervalDayToSecond

NULL脚注2

null

JSON

すべて(オブジェクト、配列、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型

number

boolean

OracleNumber

NUMBER

number

BINARY_FLOAT

number

BINARY_DOUBLE

number

boolean

BINARY_INTEGER

number

OracleNumber

boolean

BOOLEAN

string

VARCHAR2

string

CHAR

string

NCHAR

string

NVARCHAR2

string

OracleCLOB

CLOB

string

OracleCLOB

NCLOB

string

UROWID

Uint8Array

OracleBlob

BLOB

UintArray

RAW

Date

OracleDate

DATE

Date

OracleTimestamp

TIMESTAMP

Date

OracleTimestampTZ

TIMESTAMP WITH (LOCAL) TIME ZONE

OracleIntervalYearToMonth

INTERVALYEARTOMONTH

OracleIntervalDayToSecond

INTERVALDAYTOSECOND

null

NULL (サポートされているすべてのSQL型)

number

string

boolean

null

undefined

Date

Uint8Array

OracleNumber

OracleDate

OracleTimestamp

OracleTimestampTZ

OracleIntervalYearToMonth

OracleIntervalDayToSecond

オブジェクト脚注4

JSON脚注5

脚注4 前述のクラスのいずれとも一致しないJavaScriptオブジェクトおよび配列

脚注5詳細は、「MLE JavaScriptでのJSONのサポート」を参照してください