プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Service Busでのサービスの開発
12c (12.1.3)
E53004-06
目次へ移動
目次

前
次

F XQuery-SQLマッピング・リファレンス

この章では、ネイティブ・データ型のサポート、およびOracle XQueryエンジンが生成する、またはサポートするXQueryマッピングについて説明します。

この章の内容は次のとおりです。

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

Oracle Service BusでサポートされているデータベースおよびJDBCドライバの詳細は、次の場所にあるOracle Fusion Middlewareのサポートされるシステム構成を参照してください:

http://www.oracle.com/technetwork/middleware/ias/downloads/fusion-certification-100350.html

F.1 IBM DB2/NT 8

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

表F-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脚注 

VARCHAR

xs:string脚注 

VARCHAR() FOR BIT DATA

xs:hexBinary

脚注1

プロジェクト・リストのみで導き出されます。

脚注2

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

脚注3

秒単位の精度。

脚注4

TIMEおよびTIMESTAMPの制限のため、値はローカル・タイム・ゾーンに変換されます(タイムゾーン情報は削除されます)。

脚注5

精度はミリ秒までです。

F.2 Microsoft SQL Server

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

表F-2 SQL Server 2000データ型マッピング

SQLデータ型 XQuery型

BIGINT

xs:long

BINARY

xs:hexBinary

BIT

xs:boolean

CHAR

xs:string

DATETIME脚注6

xs:dateTime脚注7

DECIMAL(p,s)脚注 8 (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脚注9

xs:string

NVARCHAR

xs:string

REAL

xs:float

SMALLDATETIME脚注10

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

脚注6

秒の小数点の精度は3桁までです(ミリ秒)。タイム・ゾーンはありません。

脚注7

DATETIMEの制限のため、値はローカル・タイム・ゾーンに変換され(タイムゾーン情報は削除)、小数点以下の秒はミリ秒まで切り捨てられます。

脚注8

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

脚注9

プロジェクト・リストのみで導き出されます。

脚注10

分単位の精度。

F.3 Oracle8i、8.1.x

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

表F-3 Oracle 8.1.xデータ型マッピング

Oracle 8データ型 XQuery型

BFILE

サポートされません

BLOB

xs:hexBinary

CHAR

xs:string

CLOB脚注11

xs:string

DATE脚注12

xs:dateTime

FLOAT

xs:double

LONG1

xs:string

LONG RAW

xs:hexBinary

NCHAR

xs:string

NCLOB1

xs:string

NUMBER

xs:double

NUMBER(p,s)脚注 13

xs:decimal (if s > 0)、xs:integer (if s <=0)

NVARCHAR2

xs:string

RAW

xs:hexBinary

ROWID

xs:string

UROWID

xs:string

脚注11

プロジェクト・リストのみで導き出されます。

脚注12

秒の小数点はサポートしていません。

脚注13

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

F.4 Oracle 9i以降

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

表F-4 Oracle 9i以降のデータ型マッピング

Oracleデータ型 XQuery型

BFILE

サポートされません

BLOB

xs:hexBinary

CHAR

xs:string

CLOB脚注14

xs:string

DATE

xs:dateTime脚注15

FLOAT

xs:double

INTERVALDAYTOSECOND

xdt:dayTimeDuration

INTERVALYEARTOMONTH

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脚注16

TIMESTAMP WITH LOCAL TIMEZONE

xs:dateTime

TIMESTAMP WITH TIMEZONE

xs:dateTime

VARCHAR2

xs:string

UROWID

xs:string

脚注14

プロジェクト・リストのみで導き出されます。

脚注15

SDOがxs:dateTime値をOracle DATE型で保存する場合、それはローカル・タイム・ゾーンに変換され、DATEの制限のため、小数点次の秒は切り捨てられます。

脚注16

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

F.5 Sybase 12.5.2 (およびそれ以上)

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

注意:

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

表F-5 Sybase 12.5.2データ型マッピング

Sybaseデータ型 XQuery型

BINARY

xs:hexBinary

BIT

xs:boolean

CHAR

xs:string

DATE

xs:date

DATETIME脚注17

xs:dateTime脚注18

DECIMAL(p,s)脚注 19 (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脚注20

xs:dateTime

SMALLINT

xs:short

SMALLMONEY

xs:decimal

SYSNAME

xs:string

TEXT脚注21

xs:string

TIME

xs:time

TINYINT

xs:short

VARBINARY

xs:hexBinary

VARCHAR

xs:string

脚注17

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

脚注18

SDOがxs:dateTime値をOracle DATE型で保存する場合、それはローカル・タイム・ゾーンに変換され、DATEの制限のため、小数点次の秒は切り捨てられます。

脚注19

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

脚注20

分単位の精度。

脚注21

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

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

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

表F-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脚注22

2005

xs:string

DATE

91

xs:date脚注23

DECIMAL (p,s)脚注 24

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)脚注 

2

xs:decimal (if s > 0)、xs:integer (if s =0)

REAL

7

xs:float

SMALLINT

5

xs:short

TIME脚注25

92

xs:time4

TIMESTAMP4

93

xs:dateTime脚注 

TINYINT

-6

xs:short

VARBINARY

-3

xs:hexBinary

VARCHAR

12

xs:string

その他のベンダー固有のJDBCタイプ・コード

1111

Oracle Service Busは、ネイティブ・データ型名を使用して適切なXQueryデータ型にマップします。

脚注22

プロジェクト・リストのみで導き出されます。

脚注23

DATEの制限のため、値はローカル・タイム・ゾーンに変換されます(タイムゾーン情報は削除されます)。

脚注24

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

脚注25

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