XQuery 開発者ガイド

     Previous  Next    Open TOC in new window     
Content starts here

XQuery - SQL マッピング参照

この付録では、リレーショナル データに関する BEA AquaLogic Data Services Platform (AquaLogic Data Services Platform) のコア サポートおよびベース サポートの詳細について説明します。この付録の内容は以下のとおりです。

以降の節には以下の情報が記載されています。

 


IBM DB2/NT 8

この節の表には、IBM DB2/NT 8 について XQuery エンジンが生成する、またはサポートするすべてのデータ型およびその他のマッピングが示されています。

データ型マッピング

表 B-1 は、サポートされるデータ型マッピングの一覧です。

表 B-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 の制限のため、値はローカル タイムゾーンに変換されます (タイムゾーン情報は削除されます)。詳細については、日付/時間データ型の相違 : タイムゾーンおよび時間精度 を参照してください。

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

関数および演算子プッシュダウン

次の表 (表 B-2) は、IBM DB2/NT8 RDBMS にプッシュダウンされる関数および演算子の一覧です。fn-bea:sql-like() 関数の 2 引数および 3 引数バージョンの詳細については、 fn-bea:sql-like を参照してください。

表 B-2 IBM DB2 関数および演算子
グループ
関数および演算子
論理演算子
and, or, not
数値演算
+, -, *, div, idiv1
mod2
数値比較1
=, !=, <, <=, >, >=, eq, ne, lt, le, gt, ge
数値関数
abs, ceiling, floor, round
文字列比較3
=, !=, <, <=, >, >=, eq, ne, lt, le, gt, ge
文字列関数
concat, upper-case, lower-case, substring(2,3)4, string-length, contains5, starts-with5, ends-with5, fn-bea:sql-like(2,3) fn-bea:trim6, fn-bea:trim-left6, fn-bea:trim-right6
日付/時間比較
=, !=, <, <=, >, >=, eq, ne, lt, le, gt, ge on xs:dateTime, xs:date, xs:time
日付/時間関数
year-from-dateTime, year-from-date, month-from-dateTime, month-from-date, day-from-dateTime, day-from-date, hours-from-dateTime, hours-from-time, minutes-from-dateTime, minutes-from-time, seconds-from-dateTime, seconds-from-time, fn-bea:date-from-dateTime, fn-bea:time-from-dateTime
集約
min, max, sum, avg, count, count(distinct-values)
その他
empty, exists, subsequence7

1すべての数値型。

2xs:integer (およびサブ型) のみ。

3引数は SQL データ型 CHAR または VARCHAR である必要があります。

42 番目および 3 番目の引数が xs:double または xs:float 型の場合は、パラメータとは見なされません。

52 番目の引数は定数またはパラメータである必要があります。

6引数は SQL データ型 CHAR または VARCHAR である必要があります。

72 引数および 3 引数型は、$startingLoc または $length に xs:double が入力されている場合はプッシュダウンが行われないという制約付きでサポートされます。

キャスト演算プッシュダウン

次の表 (表 B-3) は、サポートされるキャスト演算の一覧です。

表 B-3 IBM DB2 キャスト演算
ソース XQuery 型
ターゲット XQuery 型
numeric
xs:double
numeric
xs:float
numeric
xs:int
numeric
xs:integer
numeric
xs:short
xs:decimal (およびサブ型)
xs:string
xs:integer (およびサブ型)
xs:decimal
xs:string
xs:double
xs:string
xs:float
xs:string
xs:int
xs:string
xs:integer
xs:string
xs:short
xs:dateTime
xs:time

その他の SQL 生成機能

次の表 (表 B-4) は、プッシュダウン可能な共通クエリ パターンの一覧です。「共通クエリ パターン」も参照してください。

表 B-4 IBM DB2 その他の SQL 生成機能
機能
説明
If-then-else
プッシュダウン可能
Inner join (内部結合)
プッシュダウン可能、SQL-92 構文
Outer join (外部結合)
プッシュダウン可能、SQL-92 構文
Semi-join (半結合)、Anti-semi-join
プッシュダウン可能
Order by (ソート方法)
プッシュダウン可能
Order by: Empty (NULL) 順をサポートする場合
固定 (常に、NULL を先頭にソート)。empty least 修飾子付きの Order-by (XQuery のデフォルト) はプッシュダウンされない。
Order by: ソート式内の集約関数
プッシュダウン可能
Group by (グループ化)
プッシュダウン可能
Distinct パターン
プッシュダウン可能
Trivial aggregate パターン
プッシュダウン可能 (GROUP BY 定数を使用)
Direct SQL コンポジション
プッシュダウン可能

 


Microsoft SQL Server 2000

この節の表には、Microsoft SQL Server 2000 について XQuery エンジンが生成する、またはサポートするすべてのデータ型およびその他のマッピングが示されています。

データ型マッピング

表 B-5 は Microsoft SQL Server 2000 についてサポートされているデータ型マッピングの一覧です。

表 B-5 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

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

2DATETIME の制限のため、値はローカル タイムゾーンに変換され (タイムゾーン情報は削除)、小数秒はミリ秒まで切り捨てられます。詳細については、日付/時間データ型の相違 : タイムゾーンおよび時間精度 を参照してください。

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

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

5精度は 1 分単位です。

また、以下の XQuery データ型は、パラメータとして渡すか、プッシュされた関数により戻すことができます。

関数および演算子プッシュダウン

表 B-6は Microsoft SQL Server 2000 にプッシュダウンされる関数および演算子の一覧です (fn-bea:sql-like() 関数の 2 引数および 3 引数バージョン詳細については、fn-bea:sql-likeを参照してください)。

表 B-6 SQL Server 2000 関数および演算子プッシュダウン
グループ
関数および演算子
論理演算子
and, or, not
数値演算
+, -, *, div, idiv1
mod2
数値比較1
=, !=, <, <=, >, >=, eq, ne, lt, le, gt, ge
数値関数
abs, ceiling, floor, round
文字列比較3
=, !=, <, <=, >, >=, eq, ne, lt, le, gt, ge
文字列関数
concat, upper-case, lower-case, substring(2,3)4, string-length, contains5, starts-with5, ends-with5, fn-bea:sql-like(2,3)4, fn-bea:trim, fn-bea:trim-left, fn-bea:trim-right
日付/時間比較
=, !=, <, <=, >, >=, eq, ne, lt, le, gt, ge on xs:dateTime, xs:date, xdt:yearMonthDuration, xdt:dayTimeDuration
日付/時間関数
year-from-dateTime, year-from-date, years-from-duration, month-from-dateTime, month-from-date, months-from-duration, day-from-dateTime, day-from-date, days-from-duration, hours-from-dateTime, hours-from-duration, minutes-from-dateTime, minutes-from-duration, seconds-from-dateTime, seconds-from-duration, fn-bea:date-from-dateTime
日付時間演算
op:add-yearMonthDurations, op:add-dayTimeDurations, op:subtract-yearMonthDurations, op:subtract-dayTimeDurations, op:multiply-yearMonthDuration, op:multiply-dayTimeDuration, op:divide-yearMonthDuration, op:divide-dayTimeDuration, subtract-dateTimes-yielding-yearMonthDuration, subtract-dateTimes-yielding-dayTimeDuration, op:add-yearMonthDuration-to-dateTime, op:add-dayTimeDuration-to-dateTime, op:subtract-yearMonthDuration-from-dateTime, op:subtract-dayTimeDuration-from-dateTime, subtract-dates-yielding-yearMonthDuration, subtract-dates-yielding-dayTimeDuration, op:add-yearMonthDuration-to-date, op:add-dayTimeDuration-to-date, op:subtract-yearMonthDuration-from-date, op:subtract-dayTimeDuration-from-date
集約
min, max, sum, avg, count, count(distinct-values)
その他
empty, exists, subsequence6

1すべての数値型について。

2xs:integer およびそのサブ型についてのみ。

3引数は SQL データ型 CHAR、NCHAR、VARCHAR、 NVARCHAR のいずれかである必要があります。

42 引数および 3 引数バージョンの関数がどちらもサポートされます。

52 番目の引数は SQL データ型 CHAR、NCHAR、VARCHAR、NVARCHAR のいずれかである必要があります。

6$startingLoc が 1 (定数) であり、$length が xs:integer 型であるという追加条件で、3 引数型の n:subsequence のみサポートされます。

キャスト演算プッシュダウン

表 B-7 は、サポートされるキャスト演算の一覧です。

表 B-7 SQL Server 2000 キャスト演算
ソース XQuery データ型
ターゲット XQuery データ型
numeric
xs:string
numeric
xs:double
numeric
xs:float
numeric
xs:integer
numeric
xs:long
numeric
xs:int
numeric
xs:short
xs:integer (およびサブ型)
xs:decimal
xs:string
xs:double1
xs:string
xs:float
xs:string
xs:integer
xs:string
xs:long
xs:string
xs:int
xs:string
xs:short
xs:dateTime
xs:date
xs:dateTime
xs:string

1ソース SQL 型は CHAR、NCHAR、VARCHAR または NVARCHAR である必要があります。

その他の SQL 生成機能

表 B-8 は、プッシュダウン可能な共通クエリ パターンの一覧です (詳細については、「共通クエリ パターン」 を参照してください)。

表 B-8 SQL Server 2000 その他の SQL 生成機能
機能
説明
If-then-else
プッシュダウン可能
Inner join (内部結合)
プッシュダウン可能、SQL-92 構文
Outer join (外部結合)
プッシュダウン可能、SQL-92 構文
Semi-join (半結合)、Anti-semi-join
プッシュダウン可能
Order by (ソート方法)
プッシュダウン可能
Order by: Empty 順(NULL 順)
固定 (常に、NULL を最後にソート)。empty greatest 修飾子付きの Order-by はプッシュダウンされない。
Order by: ソート式内の集約関数
プッシュダウン可能
Group by (グループ化)
プッシュダウン可能
Distinct パターン
プッシュダウン可能
Trivial aggregate パターン
プッシュダウン可能 (サブクエリを使用)
Direct SQL コンポジション
プッシュダウン可能

 


Oracle 8.1.x

この節の表には、Oracle 8.1.x (Oracle 8i) について XQuery エンジンが生成する、またはサポートするすべてのデータ型およびその他のマッピングが示されています。

データ型マッピング

表 B-9 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 は位取り (小数点以下の桁数) を表します。

また、以下の XQuery データ型は、パラメータとして渡すか、プッシュされた関数により戻すことができます。

関数および演算子プッシュダウン

次の表は、プッシュダウンされる関数および演算子の一覧です。fn-bea:sql-like() 関数の 2 引数および 3 引数バージョンの詳細については、fn-bea:sql-like を参照してください。

表 B-10 Oracle 8.1.x 関数および演算子プッシュダウン
グループ
関数および演算子
論理演算子
and, or, not
数値演算1
+, -, *, div, idiv, mod
数値比較1
=, !=, <, <=, >, >=, eq, ne, lt, le, gt, ge
数値関数
abs, ceiling, floor, round
文字列比較2
=, !=, <, <=, >, >=, eq, ne, lt, le, gt, ge
文字列関数
concat, upper-case3, lower-case3, substring(2,3)3, string-length4, contains5, starts-with5, ends-with5, fn-bea:sql-like(2,3), fn-bea:trim, fn-bea:trim-left, fn-bea:trim-right
日付/時間比較
=, !=, <, <=, >, >=, eq, ne, lt, le, gt, ge on xs:dateTime, xs:date, xdt:yearMonthDuration
日付/時間関数
year-from-dateTime, year-from-date, years-from-duration, month-from-dateTime, month-from-date, months-from-duration, day-from-dateTime, day-from-date, days-from-duration, hours-from-dateTime, minutes-from-dateTime, seconds-from-dateTime, fn-bea:date-from-dateTime
日付時間演算
op:add-yearMonthDurations, op:subtract-yearMonthDurations, op:multiply-yearMonthDuration, op:divide-yearMonthDuration, subtract-dateTimes-yielding-yearMonthDuration, op:add-yearMonthDuration-to-dateTime, op:subtract-yearMonthDuration-from-dateTime, subtract-dates-yielding-yearMonthDuration, op:add-yearMonthDuration-to-date, op:subtract-yearMonthDuration-from-date
集約
min, max, sum, avg, count, count(distinct-values)
その他
empty, exists, subsequence6

1すべての数値型について。

2引数は SQL データ型 CHAR、NCHAR、NVARCHAR2、 VARCHAR2 のいずれかである必要があります。

3空入力 (NULL) の処理は XQuery セマンティクスから逸脱しており、(空の文字列の代わりに) 空のシーケンスを戻します。

4引数はデータ型 CHAR、NCHAR、NVARCHAR2、VARCHAR2 のいずれかである必要があります。

52 番目の引数はデータ型 CHAR、NCHAR、NVARCHAR2、VARCHAR2 のいずれかである必要があります。

6fn:subsequence() の 2 引数および 3 引数バージョンは、どちらも制約なしでサポートされます。

キャスト演算プッシュダウン

表 B-11 は、サポートされるキャスト演算の一覧です。

表 B-11 Oracle 8.1.x キャスト演算プッシュダウン
ソース XQuery 型
ターゲット XQuery 型
numeric
xs:string
numeric
xs:decimal
numeric
xs:integer
numeric
xs:float
numeric
xs:double
xs:string
xs:decimal1
xs:string
xs:integer1
xs:string
xs:float1
xs:string
xs:double1
xs:dateTime
xs:date
xs:date
xs:dateTime

1ソース データ型は、CHAR、 NCHAR、 VARCHAR2、NVARCHAR2 のいずれかである必要があります。

その他の SQL 生成機能

表 B-12 は、プッシュダウン可能な共通クエリ パターンの一覧です。詳細については、「共通クエリ パターン」を参照してください。

表 B-12 Oracle 8.1.x その他の SQL 生成機能
機能
説明
If-then-else
プッシュダウン可能
Inner join (内部結合)
プッシュダウン可能、SQL-89 構文
Outer join (外部結合)
プッシュダウン可能、Oracle 独自構文
Semi-join (半結合)、Anti-semi-join
プッシュダウン可能
Order by (ソート方法)
プッシュダウン可能
Order by: Empty 順(NULL 順)
動的、Order by プッシュダウンについては制約なし
Order by: ソート式内の集約関数
プッシュダウン可能
Group by (グループ化)
プッシュダウン可能
Distinct パターン
プッシュダウン可能
Trivial aggregate パターン
プッシュダウン可能 (GROUP BY 定数を使用)
Direct SQL コンポジション
プッシュダウン可能

 


Oracle 9.x、10.x

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

データ型マッピング

表 B-13 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 の制限のため小数秒は切り捨てられます。詳細については、日付/時間データ型の相違 : タイムゾーンおよび時間精度 を参照してください。

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

また、これらの XQuery データ型は、パラメータとして渡すか、プッシュされた関数により戻すことができます。

関数および演算子プッシュダウン

表 B-14 Oracle 9.x および 10.x にプッシュダウンされる関数および演算子の一覧です。fn-bea:sql-like() 関数の 2 引数および 3 引数バージョンの詳細については、 fn-bea:sql-like を参照してください。

表 B-14 Oracle 9.x、10.x 関数および演算子プッシュダウン
グループ
関数および演算子
論理演算子
and, or, not
数値演算1
+, -, *, div, idiv, mod
数値比較1
=, !=, <, <=, >, >=, eq, ne, lt, le, gt, ge
数値関数
abs, ceiling, floor, round
文字列比較2
=, !=, <, <=, >, >=, eq, ne, lt, le, gt, ge
文字列関数
concat, upper-case3, lower-case3, substring(2,3)3, string-length4, contains5, starts-with5, ends-with5, fn-bea:sql-like(2,3), fn-bea:trim, fn-bea:trim-left, fn-bea:trim-right
日付/時間比較
=, !=, <, <=, >, >=, eq, ne, lt, le, gt, ge on xs:dateTime, xs:date, xdt:yearMonthDuration, xdt:dayTimeDuration
日付/時間関数
year-from-dateTime, year-from-date, years-from-duration, month-from-dateTime, month-from-date, months-from-duration, day-from-dateTime, day-from-date, days-from-duration, hours-from-dateTime, hours-from-duration, minutes-from-dateTime, minutes-from-duration, seconds-from-dateTime, seconds-from-duration, fn-bea:date-from-dateTime
日付時間演算
op:add-yearMonthDurations, op:add-dayTimeDurations, op:subtract-yearMonthDurations, op:subtract-dayTimeDurations, op:multiply-yearMonthDuration, op:multiply-dayTimeDuration, op:divide-yearMonthDuration, op:divide-dayTimeDuration, subtract-dateTimes-yielding-yearMonthDuration, subtract-dateTimes-yielding-dayTimeDuration, op:add-yearMonthDuration-to-dateTime, op:add-dayTimeDuration-to-dateTime, op:subtract-yearMonthDuration-from-dateTime, op:subtract-dayTimeDuration-from-dateTime, subtract-dates-yielding-yearMonthDuration, subtract-dates-yielding-dayTimeDuration, op:add-yearMonthDuration-to-date, op:add-dayTimeDuration-to-date, op:subtract-yearMonthDuration-from-date, op:subtract-dayTimeDuration-from-date
集約
min, max, sum, avg, count, count(distinct-values)
その他
empty, exists, subsequence6

1すべての数値型について。

2引数は SQL 型 (N)CHAR または (N)VARCHAR2 である必要があります。

3空入力 (NULL) の処理は XQuery セマンティクスから逸脱しており、(空の文字列の代わりに) 空のシーケンスを戻します。

4引数は CHAR、CLOB、NCHAR、NVARCHAR2、VARCHAR2 のいずれかのデータ型である必要があります。

52 番目の引数はCHAR、NCHAR、NVARCHAR2、VARCHAR2 のいずれかのデータ型である必要があります。

6fn:subsequence() の 2 引数および 3 引数バージョンは、どちらも制約なしでサポートされます。

キャスト演算プッシュダウン

表 B-15 は、プッシュダウン可能な共通クエリ パターンの一覧です。

表 B-15 Oracle 9.x、10.x キャスト演算
ソース XQuery 型
ターゲット XQuery 型
numeric
xs:string
numeric
xs:decimal
numeric
xs:integer
numeric
xs:float
numeric
xs:double
xs:string
xs:decimal1
xs:string
xs:integer
xs:string
xs:float
xs:string
xs:double
xs:dateTime
xs:date
xs:date
xs:dateTime2

1ソース SQL 型はCHAR、 NCHAR、 VARCHAR2、NVARCHAR2 のいずれかである必要があります。

2このマッピングを実行するには、ソース SQL 型が DATE または TIMESTAMP である必要があります。

その他の SQL 生成機能

表 B-16 は、プッシュダウン可能な共通クエリ パターンの一覧です (詳細については、 「共通クエリ パターン」 を参照してください)。

表 B-16 Oracle 9.x、10.x その他の SQL 生成機能
機能
説明
If-then-else
プッシュダウン可能
Inner join (内部結合)
プッシュダウン可能、SQL-92 構文
Outer join (外部結合)
プッシュダウン可能、SQL-92 構文
Semi-join (半結合)、Anti-semi-join
プッシュダウン可能
Order by (ソート方法)
プッシュダウン可能
Order by: Empty 順(NULL 順)
動的、Order by プッシュダウンについては制約なし
Order by: ソート式内の集約関数
プッシュダウン可能
Group by (グループ化)
プッシュダウン可能
Distinct パターン
プッシュダウン可能
Trivial aggregate パターン
プッシュダウン可能 (GROUP BY 定数を使用)
Direct SQL コンポジション
プッシュダウン可能

 


Sybase 12.5.2 以上

この節の表には、Sybase 12.5.2 (以上) について XQuery エンジンが生成する、またはサポートするすべてのデータ型およびその他のマッピングが示されています。

この節の表を参照する際、Sybase が XQuery セマンティクスから逸脱しており (XQuery セマンティクス では空の文字列は無視されます)、空文字列はシングル スペースの文字列として扱われることに留意してください。

データ型マッピング

この表は、サポートされるすべてのデータ型マッピングを明示します。

表 B-17 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

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

2DATETIME の制限のため、値はローカル タイムゾーンに変換され (タイムゾーン情報は削除)、小数秒はミリ秒まで切り捨てられます。詳細については、日付/時間データ型の相違 : タイムゾーンおよび時間精度 を参照してください。

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

4精度は 1 秒単位です。

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

また、以下のデータ型は、パラメータとして渡すか、プッシュされた関数により戻すことができます。

詳細については、内の日付/時間演算を参照してください。

関数および演算子プッシュダウン

表 B-18 は、ベース RDBMS にプッシュダウンされる関数および演算子の一覧です。(fn-bea:sql-like() 関数の 2 引数および 3 引数バージョンの詳細については、 fn-bea:sql-like を参照してください。

表 B-18 Sybase 12.5.2 関数および演算子プッシュダウン
グループ
関数および演算子
論理演算子
and, or, not
数値演算
+, -, *, div1
idiv2
mod3
数値比較1
=, !=, <, <=, >, >=, eq, ne, lt, le, gt, ge
数値関数
abs, ceiling, floor, round
文字列比較4
=, !=, <, <=, >, >=, eq, ne, lt, le, gt, ge
文字列関数
concat5, upper-case, lower-case, substring(2,3), string-length, contains6, starts-with6, ends-with6, fn-bea:sql-like(2,3), fn-bea:trim, fn-bea:trim-left, fn-bea:trim-right
日付/時間比較
=, !=, <, <=, >, >=, eq, ne, lt, le, gt, ge on xs:dateTime, xs:date, xs:time, xdt:yearMonthDuration, xdt:dayTimeDuration
日付/時間関数
year-from-dateTime, year-from-date, years-from-duration, month-from-dateTime, month-from-date, months-from-duration, day-from-dateTime, day-from-date, days-from-duration, hours-from-dateTime, hours-from-time, hours-from-duration, minutes-from-dateTime, minutes-from-time, minutes-from-duration, seconds-from-dateTime, seconds-from-time, seconds-from-duration, fn-bea:date-from-dateTime, fn-bea:time-from-dateTime
日付時間演算
op:add-yearMonthDurations, op:subtract-yearMonthDurations, op:multiply-yearMonthDuration, op:divide-yearMonthDuration, op:add-dayTimeDurations, op:subtract-dayTimeDurations, op:multiply-dayTimeDuration, op:divide-dayTimeDuration, op:add-yearMonthDuration-to-dateTime, op:add-yearMonthDuration-to-date, op:subtract-yearMonthDuration-from-dateTime, op:subtract-yearMonthDuration-from-date, op:add-dayTimeDuration-to-dateTime, op:add-dayTimeDuration-to-date, op:subtract-dayTimeDuration-from-dateTime, op:subtract-dayTimeDuration-from-date, fn:subtract-dateTimes-yielding-yearMonthDuration, fn:subtract-dates-yielding-yearMonthDuration, fn:subtract-dateTimes-yielding-dayTimeDuration, fn:subtract-dates-yielding-dayTimeDuration
集約
min, max, sum, avg, count, count(distinct-values)
その他
empty, exists

1すべての数値型 (+、 -、 *、 div 演算子はすべての数値型についてプッシュダウンされます)。

2xs:decimal (およびサブ型) のみ。

3xs:integer (およびサブ型) のみ。

4引数は SQL データ型 CHAR、NCHAR、NVARCHAR、VARCHAR のいずれかである必要があります。

5各引数は SQL データ型 CHAR、NCHAR、NVARCHAR、VARCHAR のいずれかである必要があります。

62 番目の引数は定数または SQL パラメータである必要があります。

キャスト演算プッシュダウン

The 表 B-19 は、サポートされるキャスト演算の一覧です。

表 B-19 Sybase 12.5.2 キャスト演算プッシュダウン
ソース XQuery 型
ターゲット XQuery 型
numeric
xs:double
numeric
xs:float
numeric
xs:int
numeric
xs:short
numeric
xs:string
xs:decimal (およびサブ型)
xs:integer
xs:integer (およびサブ型)
xs:decimal
xs:string
xs:double1
xs:string
xs:float
xs:string
xs:int
xs:string
xs:integer
xs:string
xs:short
xs:dateTime
xs:date
xs:dateTime
xs:time
1ソース SQL 型は (N)CHAR または (N)VARCHAR である必要があります。

その他の SQL 生成機能

表 B-20 は、プッシュダウン可能な共通クエリ パターンの一覧です。詳細については、「共通クエリ パターン」 を参照してください。

表 B-20 Sybase 12.5.2 その他の SQL 生成機能
機能
説明
If-then-else
プッシュダウン可能
Inner join (内部結合)
プッシュダウン可能、SQL-92 構文
Outer join (外部結合)
プッシュダウン可能、SQL-92 構文
Semi-join (半結合)、Anti-semi-join
プッシュダウン可能
Order by (ソート方法)
プッシュダウン可能
Order by: Empty 順(NULL 順)
固定 (常に、NULL を最後にソート)。empty greatest 修飾子付きの Order-by はプッシュダウンされない。
Order by: ソート式内の集約関数
プッシュダウン可能
Group by (グループ化)
プッシュダウン可能
Distinct パターン
プッシュダウン可能
Trivial aggregate パターン
プッシュダウン可能 (サブクエリを使用)
Direct SQL コンポジション
プッシュダウン可能

 


Pointbase 4.4 以上

この節の表には、Pointbase について XQuery エンジンが生成する、またはサポートするすべてのデータ型およびその他のマッピングが示されています。

データ型マッピング

表 B-21 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 は位取り (小数点以下の桁数) を表します。

関数および演算子プッシュダウン

表 B-22 は、Pointbase にプッシュダウンされる関数および演算子の一覧です。fn-bea:sql-like() 関数の 2 引数および 3 引数バージョンの詳細については、fn-bea:sql-like を参照してください。

表 B-22 Pointbase 4.4 関数および演算子プッシュダウン
グループ
関数および演算子
論理演算子
and, or, not
数値演算1
+, -, *, div, idiv
数値比較1
=, !=, <, <=, >, >=, eq, ne, lt, le, gt, ge
文字列比較2
=, !=, <, <=, >, >=, eq, ne, lt, le, gt, ge
文字列関数
concat,upper-case, lower-case, substring(2,3), string-length, contains3, starts-with3, ends-with3, fn-bea:sql-like(2,3) fn-bea:trim, fn-bea:trim-left, fn-bea:trim-right
日付/時間比較
=, !=, <, <=, >, >=, eq, ne, lt, le, gt, ge on xs:dateTime, xs:date, xs:time
日付/時間関数
year-from-dateTime, year-from-date, month-from-dateTime, month-from-date, day-from-dateTime, day-from-date, hours-from-dateTime, hours-from-time, minutes-from-dateTime, minutes-from-time, seconds-from-dateTime, seconds-from-time, fn-bea:date-from-dateTime
集約
min, max, sum, avg, count, count(distinct-values)
その他
empty, exists

1すべての数値型。

2引数については、CHAR または VARCHAR SQL データ型のみ。

32 番目の引数は定数またはパラメータである必要があります。

キャスト演算プッシュダウン

表 B-19 は、サポートされるキャスト演算の一覧です。

表 B-23 Pointbase 4.4 キャスト演算プッシュダウン
ソース XQuery 型
ターゲット XQuery 型
numeric
xs:decimal
numeric
xs:double
numeric
xs:float
numeric
xs:int
numeric
xs:short
numeric
xs:string
xs:integer およびそのサブ型
xs:integer
xs:integer およびそのサブ型
xs:long
xs:string
xs:decimal1
xs:string
xs:double1
xs:string
xs:float1
xs:string
xs:integer1
xs:string
xs:long1
xs:string
xs:int1
xs:string
xs:short1
xs:dateTime
xs:date

1ソース SQL データ型は CHAR または VARCHAR である必要があります。

その他の SQL 生成機能

表 B-24 は、プッシュダウン可能な共通クエリ パターンの一覧です (詳細については、「共通クエリ パターン」 を参照してください)。

表 B-24 Pointbase 4.4 その他の SQL 生成機能
機能
説明
If-then-else
プッシュダウン不可
Inner join (内部結合)
プッシュダウン可能、SQL-92 構文
Outer join (外部結合)
プッシュダウン可能 (部分的)、SQL-92 構文。単純な外部結合のみプッシュされる。サブクエリが必要な外部結合 (たとえば、右ブランチに where 句が含まれる場合など) はプッシュされない。
Semi-join (半結合)、Anti-semi-join
プッシュダウン可能
Order by (ソート方法)
プッシュダウン可能
Order by: Empty 順(NULL 順)
固定 (常に、NULL を最後にソート)。empty greatest 修飾子付きの Order-by はプッシュダウンされない。
Order by: ソート式内の集約関数
プッシュダウン不可
Group by (グループ化)
プッシュダウン可能 (Group by 関数の式はサポートされず、group by column のみプッシュされる。)
Distinct パターン
プッシュダウン可能
Trivial aggregate パターン
プッシュダウン不可
Direct SQL コンポジション
プッシュダウン不可

 


ベース (汎用) RDBMS サポート

各 JDBC ドライバは、それが関連付けられている RDBMS に内蔵するプロパティおよび機能に関する情報を提供します。メタデータのインポート処理中、AquaLogic Data Services Platform では、基本プロパティおよび機能に関し、設定されたデータ ソースの JDBC ドライバをクエリします。取得した情報の多くは、データ サービス定義ファイル (.ds) のメタデータ セクションに格納されます。詳細については、「AquaLogic Data Services Platform アノテーションについて」 を参照してください。

データベースの機能情報

運用 JDBC ドライバから表 B-25 に一覧されているデータベース機能が取得され、.ds (データ サービス) 定義ファイル内にプロパティとして格納されます。

表 B-25 JDBC ドライバから取得されたデータベース プロパティ
プロパティ
説明
可能な値
supportsSchemasInDataManipulation
SQL ステートメントにスキーマ名を含めることができるかどうかを識別するブール
true, false
supportsCatalogsInDataManipulation
SQL によりデータベース カタログを呼び出すことができるかどうかを識別するブール
true, false
supportsLikeEscapeClause
データベースにおいて LIKE 式内の ESCAPE 句がサポートされるかどうかを識別するブール
true, false
nullSortOrder
NULL を格納する順序
low, high, unknown
identifierQuote
(オフセット) 識別子ラベルを示すための区切り記号として使用される文字列
文字列値 (空値も可能)
catalogSeparator
カタログ (またはスキーマ) とテーブル名間の区切り記号 (セパレータ) として使用される文字列
文字列値

AquaLogic Data Services Platform の XQuery エンジンは、通常、特殊文字を適切に処理するためにオブジェクトの名前 (識別子) を引用します。identifierQuote プロパティ (を参照) は、JDBC ドライバから取得されます。ただし、各 RDBMS がそれぞれ、以下のような異なるデータベース オブジェクト名の異なる識別子を使用することもあります。

必要に応じて、各タイプの識別子 (を参照) について、識別子引用プロパティを手動で上書きすることができます。

通常は、JDBC ドライバから取得された identifierQuote プロパティが使用されます。ただし、特定の引用プロパティが利用可能であり、RDBMS がそれを使用する場合は、.ds ファイル内でアノテーション設定を修正することができます (これらのプロパティの詳細については、 「リレーショナル データ サービス アノテーション」 を参照してください)。特定の引用プロパティ (表 B-26 を参照) が利用可能な場合、XQuery エンジン (metadata importer sub-system) ではそれを使用します。利用可能でない場合は、JDBC から提供された identifierQuote が使用されます。

このルールのただ 1 つの例外は、Sybase 12.5.2 以前の Sybase バージョンについてです。これらのバージョンは、ベース プラットフォームとして処理されます。JDBC ドライバが identifierQuote プロパティについて二重引用符 ("") を戻しても、Sybase ではカタログに対し引用符は使用しません。XQuery エンジンでは、空の文字列に対し自動で catalogQuote プロパティを設定することで、この不一致に対応します。

表 B-26 データベース オブジェクトの省略可能な引用プロパティ
プロパティ
説明
可能な値
catalogQuote
カタログの名前を示すための引用符として使用される特殊文字
文字列
schemaQuote
スキーマの名前を示すための引用符として使用される特殊文字
文字列
tableQuote
テーブルの名前を示すための引用符として使用される特殊文字
文字列
columnQuote
カラムの名前を示すための引用符として使用される特殊文字
文字列

データ型マッピング

SQL を XQuery データ型にマッピングする際、XQuery エンジンではまず JDBC タイプ コードをチェックします。タイプ コードが XQuery 型に対応している場合は、AquaLogic Data Services Platform は一致するネイティブ タイプ名を使用します。一致するタイプ コードまたはタイプ名がない場合、カラムは無視されます。表 B-27 は、このマッピングを示したものです。

表 B-27 ベース プラットフォーム データ型マッピング (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
AquaLogic Data Services Platform は、ネイティブ データ型名を使用して適切な XQuery データ型にマップします。
その他のベンダー固有の JDBC タイプ コード

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

2DATE の制限のため、値はローカル タイムゾーンに変換されます (タイムゾーン情報は削除されます)。詳細については、日付/時間データ型の相違 : タイムゾーンおよび時間精度 を参照してください。

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

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

表 B-28 は、ベース RDBMS にプッシュダウンされる関数および演算子の一覧です。fn-bea:sql-like() 関数の 2 引数および 3 引数バージョンの詳細については、fn-bea:sql-like を参照してください。

表 B-28 ベース プラットフォーム 関数および演算子
グループ
関数および演算子
論理演算子
and, or, not
数値演算
+, -, *1
div2
数値比較1
=, !=, <, <=, >, >=, eq, ne, lt, le, gt, ge
文字列比較3
=, !=, <, <=, >, >=, eq, ne, lt, le, gt, ge
文字列関数
contains4, starts-with4, ends-with4, fn-bea:sql-like(2), fn-bea:sql-like(3),4 upper-case, lower-case
日付/時間比較
=, !=, <, <=, >, >=, eq, ne, lt, le, gt, ge on xs:dateTime, xs:date, xs:time
その他
empty, exists

1すべての数値型。

2xs:decimal、 xs:float および xs:double データ型についてのみサポート。

3引数は CHAR または VARCHAR SQLデータ型である必要があります。

4最初の引数は SQL データ型 CHAR または VARCHAR、および 2 番目の引数は定数またはパラメータである必要がそれぞれあります。RDBMS は LIKE (ESCAPE を含む) 句をサポートする必要があります。

キャスト演算プッシュダウン

ベース RDBMS については、キャスト演算はプッシュダウンされません。

その他の SQL 生成機能

表 B-29 には、その他の SQL プッシュダウン機能が示されています。これらは、「共通クエリ パターン」に記載されています。

表 B-29 ベース プラットフォーム SQL 生成機能
クエリ
サポートの可否
If-Then-Else
プッシュダウン不可
Inner join (内部結合)
プッシュダウン可能、SQL-89 構文
Outer join (外部結合)
プッシュダウン不可
Semi-join (半結合)、Anti-semi-join
プッシュダウン不可
Order by (ソート方法)
プッシュダウン可能
Order by: Empty (NULL) 順をサポートする場合
データベース依存
Order by: ソート式内の集約関数
プッシュダウン不可
Group by (グループ化)
プッシュダウン可 (カラム別のみ)
Distinct パターン
プッシュダウン可能
Trivial aggregate パターン
プッシュダウン不可
Direct SQL コンポジション
プッシュダウン不可


  Back to Top       Previous  Next