この付録では、ネイティブ・データ型のサポート、およびBEA XQueryエンジンが生成する、またはサポートするXQueryマッピングについて説明します。内容は以下のとおりです。
コアRDBMSデータ型マッピング
Oracle Service Bus XQueryでのこれらのマッピングの使用については、37.9項「XQueryを使用したデータベースへのアクセス」を参照してください。
Oracle Service BusでサポートされているデータベースおよびJDBCドライバの詳細は、次のURLにあるOracle Fusion Middlewareのサポートされるシステム構成を参照してください。
http://www.oracle.com/technology/software/products/ias/files/fusion_certification.html
この項では、IBM DB2/NT 8についてXQueryエンジンが生成する、またはサポートするデータ型マッピングについて示します。
表H-1 IBM DB2データ型マッピング
DB2データ型 | XQuery型 |
---|---|
BIGINT |
xs:long |
BLOB |
xs:hexBinary |
CHAR |
xs:string |
CHAR() FOR BIT DATA |
xs:hexBinary |
CLOB脚注 1 |
xs:string |
DATE |
xs:date |
DOUBLE |
xs:double |
DECIMAL(p,s)脚注 2 (NUMERIC) |
xs:decimal (if s > 0), xs:integer (if s = 0) |
INTEGER |
xs:int |
LONG VARCHAR1 |
xs:string |
LONG VARCHAR FOR BIT DATA |
xs:hexBinary |
REAL |
xs:float |
SMALLINT |
xs:short |
TIME脚注 3 |
xs:time脚注 4 |
TIMESTAMP脚注 5 |
xs:dateTime脚注 4 |
VARCHAR |
xs:string脚注 4 |
VARCHAR() FOR BIT DATA |
xs:hexBinary |
脚注 1 プロジェクト・リストでのみプッシュ・ダウンされます。
脚注 2 ここで、pは精度(小数点以下および以上の両方を含めた総桁数)で、sは位取り(小数点以下の桁数)を表します。
脚注 3 精度は1秒単位です。
脚注 4 TIMEおよびTIMESTAMPの制限のため、値はローカル・タイム・ゾーンに変換されます(タイムゾーン情報は削除されます)。
脚注 5 精度はミリ秒に制限されています。
この項では、Microsoft SQL ServerについてXQueryエンジンが生成する、またはサポートするデータ型マッピングについて示します。
表H-2 SQL Server 2000データ型マッピング
SQLデータ型 | XQuery型 |
---|---|
BIGINT |
xs:long |
BINARY |
xs:hexBinary |
BIT |
xs:boolean |
CHAR |
xs:string |
DATETIME脚注 1 |
xs:dateTime脚注 2 |
DECIMAL(p,s)脚注 3 (NUMERIC) |
xs:decimal (if s > 0), xs:integer (if s = 0) |
FLOAT |
xs:double |
IMAGE |
xs:hexBinary |
INTEGER |
xs:int |
MONEY |
xs:decimal |
NCHAR |
xs:string |
NTEXT脚注 4 |
xs:string |
NVARCHAR |
xs:string |
REAL |
xs:float |
SMALLDATETIME脚注 5 |
xs:dateTime |
SMALLINT |
xs:short |
SMALLMONEY |
xs:decimal |
SQL_VARIANT |
xs:string |
TEXT4 |
xs:string |
TIMESTAMP |
xs:hexBinary |
TINYINT |
xs:short |
VARBINARY |
xs:hexBinary |
VARCHAR |
xs:string |
UNIQUIDENTIFIER |
xs:string |
脚注 1 小数点以下3桁までの秒精度(ミリ秒)。タイム・ゾーンはありません。
脚注 2 DATETIMEの制限のため、値はローカル・タイム・ゾーンに変換され(タイムゾーン情報は削除)、小数点以下の秒はミリ秒まで切り捨てられます。
脚注 3 ここで、pは精度(小数点以下および以上の両方を含めた総桁数)で、sは位取り(小数点以下の桁数)を表します。
脚注 4 プロジェクト・リストでのみプッシュ・ダウンされます。
脚注 5 精度は1分単位です。
この項では、Oracle 8.1.x (Oracle 8i)についてXQueryエンジンが生成する、またはサポートするデータ型について示します。
表H-3 Oracle 8.1.xデータ型マッピング
Oracle 8データ型 | XQuery型 |
---|---|
BFILE |
サポートされません |
BLOB |
xs:hexBinary |
CHAR |
xs:string |
CLOB脚注 1 |
xs:string |
DATE脚注 2 |
xs:dateTime |
FLOAT |
xs:double |
LONG1 |
xs:string |
LONG RAW |
xs:hexBinary |
NCHAR |
xs:string |
NCLOB1 |
xs:string |
NUMBER |
xs:double |
NUMBER(p,s)脚注 3 |
xs:decimal (if s > 0), xs:integer (if s <=0) |
NVARCHAR2 |
xs:string |
RAW |
xs:hexBinary |
ROWID |
xs:string |
UROWID |
xs:string |
脚注 1 プロジェクト・リストでのみプッシュ・ダウンされます。
脚注 2 小数点以下の秒はサポートしません。
脚注 3 ここで、pは精度(小数点以下および以上の両方を含めた総桁数)で、sは位取り(小数点以下の桁数)を表します。
この項では、Oracle 9iおよびOracle Database 10gについてXQueryエンジンが生成する、またはサポートするデータ型およびその他のマッピングについて説明します。Oracleでは空の文字列はNULLとして処理され、この文字列は、XQueryセマンティクスから逸脱しており、プッシュ・ダウンされた式に対し予期しない結果が導き出される可能性があります。
表H-4 Oracle 9i、Oracle Database 10gデータ型マッピング
Oracleデータ型 | XQuery型 |
---|---|
BFILE |
サポートされません |
BLOB |
xs:hexBinary |
CHAR |
xs:string |
CLOB脚注 1 |
xs:string |
DATE |
xs:dateTime脚注 2 |
FLOAT |
xs:double |
INTERVAL DAY TO SECOND |
xdt:dayTimeDuration |
INTERVAL YEAR TO MONTH |
xdt:yearMonthDuration |
LONG1 |
xs:string |
LONG RAW |
xs:hexBinary |
NCHAR |
xs:string |
NCLOB1 |
xs:string |
NUMBER |
xs:double |
NUMBER(p,s) |
xs:decimal (if s > 0), xs:integer (if s <=0) |
NVARCHAR2 |
xs:string |
RAW |
xs:hexBinary |
ROWID |
xs:string |
TIMESTAMP |
xs:dateTime脚注 3 |
TIMESTAMP WITH LOCAL TIMEZONE |
xs:dateTime |
TIMESTAMP WITH TIMEZONE |
xs:dateTime |
VARCHAR2 |
xs:string |
UROWID |
xs:string |
脚注 1 プロジェクト・リストでのみプッシュ・ダウンされます。
脚注 2 SDOがxs:dateTime値をOracle DATE型で保存する場合、それはローカル・タイム・ゾーンに変換され、DATEの制限のため、小数点以下の秒は切り捨てられます。
脚注 3 タイム・ゾーン情報があるかどうかに応じて、XQueryエンジンはXQuery xs:dateTimeをTIMESTAMPまたはTIMESTAMP WITH TIMEZONEデータ型のいずれかにマップします。SDOを使用してxs:dateTimeを保存する場合、SQLの型定義に応じて、秒の小数点以下の桁が欠落することがあります。
この項では、Sybase 12.5.2 (またはそれ以上)についてXQueryエンジンが生成する、またはサポートするデータ型について示します。
注意: SybaseはXQueryセマンティクスから逸脱しており(XQueryセマンティクスでは空の文字列は無視されます)、空の文字列はシングル・スペースの文字列として処理されます。 |
表H-5 Sybase 12.5.2データ型マッピング
Sybaseデータ型 | XQuery型 |
---|---|
BINARY |
xs:hexBinary |
BIT |
xs:boolean |
CHAR |
xs:string |
DATE |
xs:date |
DATETIME脚注 1 |
xs:dateTime脚注 2 |
DECIMAL(p,s)脚注 3 (NUMERIC) |
xs:decimal (if s > 0), xs:integer (if s == 0) |
DOUBLE PRECISION |
xs:double |
FLOAT |
xs:double |
IMAGE |
xs:hexBinary |
INT (INTEGER) |
xs:int |
MONEY |
xs:decimal |
NCHAR |
xs:string |
NVARCHAR |
xs:string |
REAL |
xs:float |
SMALLDATETIME脚注 4 |
xs:dateTime |
SMALLINT |
xs:short |
SMALLMONEY |
xs:decimal |
SYSNAME |
xs:string |
TEXT脚注 5 |
xs:string |
TIME |
xs:time |
TINYINT |
xs:short |
VARBINARY |
xs:hexBinary |
VARCHAR |
xs:string |
脚注 1 小数点以下3桁までの秒(ミリ秒)をサポートします。タイム・ゾーン情報はありません。
脚注 2 SDOがxs:dateTime値をOracle DATE型で保存する場合、それはローカル・タイム・ゾーンに変換され、DATEの制限のため、小数点以下の秒は切り捨てられます。
脚注 3 ここで、pは精度(小数点以下および以上の両方を含めた総桁数)で、sは位取り(小数点以下の桁数)を表します。
脚注 4 精度は1分単位です。
脚注 5 テキストを返す式は、プロジェクト・リストでのみプッシュ・ダウンされます。
SQLをXQueryデータ型にマッピングする際、XQueryエンジンでは最初にJDBCタイプ・コードを確認します。タイプ・コードがXQuery型に対応している場合、Queryエンジンでは一致するネイティブ・タイプ名を使用します。一致するタイプ・コードやタイプ名がない場合、列は無視されます。表H-6にこのマッピングを示します。
表H-6 RDBMSデータ型マッピング
JDBCデータ型 | タイプ・コード | XQueryデータ型 |
---|---|---|
BIGINT |
-5 |
xs:long |
BINARY |
-2 |
xs:string |
BIT |
-7 |
xs:boolean |
BLOB |
2004 |
xs:hexBinary |
BOOLEAN |
16 |
xs:boolean |
CHAR |
1 |
xs:string |
CLOB脚注 1 |
2005 |
xs:string |
DATE |
91 |
xs:date脚注 2 |
DECIMAL (p,s)脚注 3 |
3 |
xs:decimal (if s > 0), xs:integer (if s =0) |
DOUBLE |
8 |
xs:double |
FLOAT |
6 |
xs:double |
INTEGER |
4 |
xs:int |
LONGVARBINARY |
-4 |
xs:hexBinary |
LONGVARCHAR1 |
-1 |
xs:string |
NUMERIC (p,s)脚注 3 |
2 |
xs:decimal (if s > 0), xs:integer (if s =0) |
REAL |
7 |
xs:float |
SMALLINT |
5 |
xs:short |
TIME脚注 4 |
92 |
xs:time4 |
TIMESTAMP4 |
93 |
xs:dateTime脚注 2 |
TINYINT |
-6 |
xs:short |
VARBINARY |
-3 |
xs:hexBinary |
VARCHAR |
12 |
xs:string |
その他のベンダー固有のJDBCタイプ・コード |
1111 |
Oracle Service Busは、ネイティブ・データ型名を使用して適切なXQueryデータ型にマップします。 |
脚注 1 プロジェクト・リストでのみプッシュ・ダウンされます。
脚注 2 DATEの制限のため、値はローカル・タイム・ゾーンに変換されます(タイムゾーン情報は削除されます)。
脚注 3 ここで、pは精度(小数点以下および以上の両方を含めた総桁数)で、sは位取り(小数点以下の桁数)を表します。
脚注 4 xs:timeをTIMEに変換する場合、基盤のRDBMSの精度により、TIMEデータ型の精度および小数点以下切捨ての度合い(該当する場合)が決定します。