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 | 
 | 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ではめったに使用されないため、サポートされません。