ユーザーズ ガイド

     前  次    目次     
ここから内容

XQuery-SQL マッピング参照

この付録では、ネイティブ データ型のサポート、および BEA XQuery エンジンが生成する、またはサポートする XQuery マッピングについて説明します。内容は以下のとおりです。

Oracle Service Bus XQuery でのこれらのマッピングの使用については、「XQuery を使用したデータベースへのアクセス」を参照してください。

Oracle Service Bus でのデータベースと JDBC ドライバのサポートについては、Oracle Service Bus 10g R3でサポート対象のコンフィグレーションの「サポート対象のデータベース コンフィグレーション」を参照してください。

 


IBM DB2/NT 8

この節では、IBM DB2/NT 8 について XQuery エンジンが生成する、またはサポートするデータ型マッピングについて示します。

表 A-1 IBM DB2 データ型マッピング
DB2 データ型
XQuery 型
BIGINT
xs:long
BLOB
xs:hexBinary
CHAR
xs:string
CHAR() FOR BIT DATA
xs:hexBinary
CLOB1
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
TIME3
xs:time4
TIMESTAMP5
xs:dateTime4
VARCHAR
xs:string4
VARCHAR() FOR BIT DATA
xs:hexBinary

1プロジェクト リストでのみプッシュ ダウンされます。

2ここで、p は精度 (小数点以下および以上の両方を含めた総桁数) で、s は位取り (小数点以下の桁数) を表します

3精度は 1 秒単位です。

4TIME および TIMESTAMP の制限のため、値はローカル タイム ゾーンに変換されます (タイムゾーン情報は削除されます)。詳細については、『XQuery 開発者ガイド』の「XQuery エンジンおよび SQL」にある「XQuery-SQL データ型マッピング」を参照してください

5精度はミリ秒に制限されています。

 


Microsoft SQL Server

この節では、Microsoft SQL Server について XQuery エンジンが生成する、またはサポートするデータ型マッピングについて示します。

表 A-2 SQL Server 2000 データ型マッピング
SQL データ型
XQuery 型
BIGINT
xs:long
BINARY
xs:hexBinary
BIT
xs:boolean
CHAR
xs:string
DATETIME1
xs:dateTime2
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
NTEXT4
xs:string
NVARCHAR
xs:string
REAL
xs:float
SMALLDATETIME5
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 桁までの秒精度 (ミリ秒)。タイムゾーンはありません。

2DATETIME の制限のため、値はローカル タイム ゾーンに変換され (タイムゾーン情報は削除)、小数点以下の秒はミリ秒まで切り捨てられます。詳細については、『XQuery 開発者ガイド』の「XQuery エンジンおよび SQL」にある「XQuery-SQL データ型マッピング」を参照してください

3ここで、p は精度 (小数点以下および以上の両方を含めた総桁数) で、s は位取り (小数点以下の桁数) を表します

4プロジェクト リストでのみプッシュ ダウンされます。

5精度は 1 分単位です。

 


Oracle 8.1.x

この節では、Oracle 8.1.x (Oracle 8i) について XQuery エンジンが生成する、またはサポートするデータ型について示します。

表 A-3 Oracle 8.1.x データ型マッピング
Oracle 8 データ型
XQuery 型
BFILE
サポート対象外
BLOB
xs:hexBinary
CHAR
xs:string
CLOB1
xs:string
DATE2
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 9.x、10.x

この節では、Oracle 9.x (Oracle 9i) および Oracle 10.x (Oracle 10g) について XQuery エンジンが生成する、またはサポートするデータ型およびその他のマッピングについて説明します。Oracle では空の文字列は NULL として処理されます。この文字列は、XQuery セマンティクスから逸脱しており、プッシュ ダウンされた式に対し予期しない結果が導き出される可能性があります。

表 A-4 Oracle 9.x、10.x データ型マッピング
Oracle 9 データ型
XQuery 型
BFILE
サポート対象外
BLOB
xs:hexBinary
CHAR
xs:string
CLOB1
xs:string
DATE
xs:dateTime2
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:dateTime3
TIMESTAMP WITH LOCAL TIMEZONE
xs:dateTime
TIMESTAMP WITH TIMEZONE
xs:dateTime
VARCHAR2
xs:string
UROWID
xs:string

1プロジェクト リストでのみプッシュ ダウンされます。

2SDO が xs:dateTime 値を Oracle DATE 型で保存する場合、この値はローカル タイム ゾーンに変換され、DATE の制限のため小数点以下の秒は切り捨てられます。詳細については、『XQuery 開発者ガイド』の「XQuery エンジンおよび SQL」にある「XQuery-SQL データ型マッピング」を参照してください

3タイムゾーン情報があるかどうかに応じて、XQuery エンジンは XQuery xs:dateTime を TIMESTAMP または TIMESTAMP WITH TIMEZONE データ型のいずれかにマップします。SDO を使用して xs:dateTime を保存する場合、SQL の型定義に応じて、秒の小数点以下の桁が欠落することがあります。

 


Sybase 12.5.2 以上

この節では、Sybase 12.5.2 (またはそれ以上) について XQuery エンジンが生成する、またはサポートするデータ型について示します。

注意 : Sybase は XQuery セマンティクスから逸脱しており (XQuery セマンティクスでは空の文字列は無視されます)、空の文字列はシングル スペースの文字列として処理されます。

表 A-5 Sybase 12.5.2 データ型マッピング
Sybase データ型
XQuery 型
BINARY
xs:hexBinary
BIT
xs:boolean
CHAR
xs:string
DATE
xs:date
DATETIME1
xs:dateTime2
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
SMALLDATETIME4
xs:dateTime
SMALLINT
xs:short
SMALLMONEY
xs:decimal
SYSNAME
xs:string
TEXT5
xs:string
TIME
xs:time
TINYINT
xs:short
VARBINARY
xs:hexBinary
VARCHAR
xs:string

1小数点以下 3 桁までの秒 (ミリ秒) をサポートします。タイムゾーン情報はありません。

2SDO が xs:dateTime 値を Oracle DATE 型で保存する場合、この値はローカル タイム ゾーンに変換され、DATE の制限のため小数点以下の秒は切り捨てられます。詳細については、『XQuery 開発者ガイド』の「XQuery エンジンおよび SQL」にある「XQuery-SQL データ型マッピング」を参照してください

3ここで、p は精度 (小数点以下および以上の両方を含めた総桁数) で、s は位取り (小数点以下の桁数) を表します

4精度は 1 分単位です。

5テキストを返す式は、プロジェクト リストでのみプッシュ ダウンされます。

 


Pointbase 4.4 以上

この節では、Pointbase について XQuery エンジンが生成する、またはサポートするデータ型について示します。

表 A-6 Pointbase 4.4 データ型マッピング
Pointbase データ型
XQuery 型
BIGINT
xs:long
BLOB
xs:hexBinary
BOOLEAN
xs:boolean
CHAR (CHARACTER)
xs:string
CLOB
xs:string
DATE
xs:date
DECIMAL(p,s)1 (NUMERIC)
xs:decimal (if s > 0), xs:integer (if s == 0)
DOUBLE PRECISION
xs:double
FLOAT
xs:double
INTEGER (INT)
xs:int
SMALLINT
xs:short
REAL
xs:float
TIME
xs:time
TIMESTAMP
xs:dateTime
VARCHAR
xs:string

1ここで、p は精度 (小数点以下および以上の両方を含めた総桁数) で、s は位取り (小数点以下の桁数) を表します

 


ベース (汎用) RDBMS データ型マッピング

SQL を XQuery データ型にマッピングする際、XQuery エンジンでは最初に JDBC タイプ コードを確認します。タイプ コードが XQuery 型に対応している場合、Query エンジンでは一致するネイティブ タイプ名を使用します。一致するタイプ コードやタイプ名がない場合、カラムは無視されます。表 A-7 にこのマッピングを示します。

表 A-7 ベース プラットフォーム データ型マッピング (JDBC<->XQuery 等価)
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
CLOB1
2005
xs:string
DATE
91
xs:date2
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
TIME4
92
xs:time4
TIMESTAMP4
93
xs:dateTime2
TINYINT
-6
xs:short
VARBINARY
-3
xs:hexBinary
VARCHAR
12
xs:string
OTHER
1111
Oracle Service Bus は、ネイティブ データ型名を使用して適切な XQuery データ型にマップする。
その他のベンダ固有の JDBC タイプ コード

1プロジェクト リストでのみプッシュ ダウンされます。

2DATE の制限のため、値はローカル タイム ゾーンに変換されます (タイムゾーン情報は削除されます)。詳細については、『XQuery 開発者ガイド』の「XQuery エンジンおよび SQL」にある「XQuery-SQL データ型マッピング」を参照してください

3ここで、p は精度 (小数点以下および以上の両方を含めた総桁数) で、s は位取り (小数点以下の桁数) を表します

4xs:time を TIME に変換する場合、基盤の RDBMS の精度により、TIME データ型の精度および小数点以下切り捨ての度合い (該当する場合) が決定します。

関連トピック

XQuery を使用したデータベースへのアクセス

fn-bea:execute-sql()


  ページの先頭       前  次