B Oracle REST Data Servicesデータベース・タイプのマッピング
この付録では、構造化されたデータベース・タイプとともに、REST Data Servicesデータベース・タイプのマッピングを説明します。
B.1 Oracle組込み型
データ型 | JSONデータ型 | RESTバージョン | 値の例 | 説明 |
---|---|---|---|---|
NUMBER |
数値 |
v1 |
|
すべての有効数字で表されます。数が10桁を超える場合、ベキ指数が使用されます。 |
RAW |
文字列 |
カスタム |
|
Base64ビット・エンコーディングが使用されます |
DATE |
文字列 |
v1.2 |
|
UTCタイムゾーンではISO 8601形式を使用して表されます |
TIMESTAMP |
文字列 |
v1.2 |
|
UTCタイムゾーンではISO 8601形式を使用して表されます |
TIMESTAMPWITHLOCALTIMEZONE |
文字列 |
v1.2 |
"at" : "1995-06-02T04:29:11.002Z" |
ISO 8601の形式を使用して表されます。ローカル・タイムゾーン仕様は転送エンコーディングには適用されないため、ローカル・タイムゾーンがUTCタイムゾーンに変換されます。 |
CHAR |
文字列 |
v1 |
|
後続するスペースで表されます。これは、PUTまたはPOSTメソッド用の充填物として必要とされる場合があります。たとえば、" |
ROWID |
文字列 |
カスタム |
|
ネイティブのOracleテキスト表現としての出力。たとえば、次の変換と同等: |
UROWID |
文字列 |
カスタム |
|
ネイティブのOracleテキスト表現としての出力。たとえば、次の変換と同等: |
FLOAT |
数値 |
v1 |
|
|
NCHAR |
文字列 |
v1 |
|
文字がボディ・キャラクタ・セットによってサポートされない場合にユニコード文字を使用して表されます。 |
NVARCHAR2 |
文字列 |
v1 |
|
文字がボディ・キャラクタ・セットによってサポートされない場合にユニコード文字を使用して表されます。 |
VARCHAR2 |
文字列 |
v1 |
|
|
BINARY_FLOAT |
数値 |
v1 |
|
|
BINARY_DOUBLE |
数値 |
v1 |
|
|
TIMESTAMPWITHTIMEZONE |
オブジェクト |
v1.2 |
|
UTCタイムゾーンではISO 8601形式を使用して表されます値は同じ時点を表しますが、元のタイムゾーンは失われます。 |
INTERVALYEARTOMONTH |
オブジェクト |
カスタム |
|
ISO 8601の「期間」の形式を使用して表されます。期間が0のコンポーネントは、オプションとみなされます。 |
INTERVALDAYTOSECOND |
オブジェクト |
カスタム |
|
ISO 8601の「期間」の形式を使用して表されます。期間が0のコンポーネントは、オプションとみなされます |
LONG |
文字列 |
v1 |
|
|
LONG RAW |
文字列 |
カスタム |
|
|
BLOB |
文字列 |
カスタム |
|
|
CLOB |
文字列 |
カスタム |
|
|
BFILE |
オブジェクト |
カスタム |
|
|
BOOLEAN |
true|false |
v1 |
|
B.2 構造化されたデータベース・タイプの処理
この項では、構造化されたデータベース・タイプがどのように処理されるかを説明します。
オブジェクト型
これの例外は、ORDSがGeoJSONなど業界標準のタイプとして受け入れられているエンコーディングを採用した場合です。
サンプル・コード・スニペットを次に示します。
"address" : {
"number" : 42,
"street" : "Wallaby Way",
"city" : "Sydney"
}
継承
オブジェクト型の継承はサポートされません。マーシャリング目的で、オブジェクト型はすべて、残された具体的な型であるように扱われます。
PL/SQLレコード
PL/SQLレコードはサポートされていません。
VARRAYS
VARRAYSは、JSON配列型に直接マップされます。
サンプル・コード・スニペットを次に示します。
"addresses" : [
{
"__db_type" : "MY_SCHEMA.AUS_ADDRESS",
"number" : 42,
"street" : "Wallaby Way",
"city" : "Sydney"
},
{
"__db_type" : "MY_SCHEMA.UK_ADDRESS"
"number : 1,
"street" : "Oracle Parkway"
"city" : "Reading"
"postcode" : "RG6 1RA"
}
]
要素の継承
VARRAY要素インスタンスの型が定義された型のサブタイプである場合、オブジェクト型の項で説明されているように、__db_type
という名前の値を追加することが必須になります。
連想配列
-
整数値による索引付け: 移入されたデータが少ない索引付けられた配列。この型の配列は、指定の索引に値を提供しない場合があります。この型の配列とJSONの間で変換が行われる場合、索引は無視され、索引付け可能な値ギャップは削除されます。これには、PL/SQLプロシージャを介してIN/OUTパラメータとして渡された、変更のない移入データの少ない索引付き配列が、索引付け可能な値ギャップが削除されたために、変更されたように見えるという副作用があります。
サンプル・コード・スニペットを次に示します。
:"avg_values" : [ 34, 57, 86, 3235 ]
-
整数値によって索引付けられていない: たとえば、VARCHAR。このカテゴリは、Oracle JDBC APIではめったに使用されないため、サポートされません。