WebLogic Type 4 JDBC ドライバ ガイド
JDBC の SQL エスケープ シーケンス
外部結合やスカラー関数呼び出しなどの言語機能は、データベース システムによって実装されるのが一般的です。これらの機能の構文は、標準的な構文が定義されていても、データベースに固有の場合がよくあります。JDBC では、以下の言語機能の標準的な構文を含むエスケープ シーケンスが定義されています。
日付、時刻、およびタイムスタンプ リテラル
数値、文字列、およびデータ型変換関数などのスカラー関数呼び出し
外部結合
プロシージャ呼び出し
JDBC で使用されるエスケープ シーケンスは次のとおりです。
{extension}
BEA WebLogic Type 4 JDBC ドライバは、エスケープ シーケンスを認識して解析し、データ ストア固有の文法に置き換えます。
日付、時刻、およびタイムスタンプのエスケープ シーケンス
日付、時刻、およびタイムスタンプ リテラルのエスケープ シーケンスは次のとおりです。
{literal-type
'value'}
literal-type は以下のいずれかです。
表 C-1 日付、時刻、およびタイムスタンプ エスケープ シーケンスのリテラル タイプ
リテラルのタイプ
|
説明
|
値の形式
|
d
|
日付
|
yyyy-mm-dd
|
t
|
時刻
|
hh:mm:ss [1]
|
ts
|
タイムスタンプ
|
yyyy-mm-dd hh:mm:ss[.f...]
|
例 :
UPDATE Orders SET OpenDate={d '1995-01-15'}
WHERE OrderID=1023
スカラー関数
次の構文に従って、SQL 文でスカラー関数を使用できます。
{fn scalar-function
}
scalar-function は、BEA WebLogic Type 4 JDBC ドライバでサポートされているスカラー関数です (表 C-2 を参照)。
例 :
SELECT id, name FROM emp WHERE name LIKE {fn UCASE('Smith')}
表 C-2 サポートされているスカラー関数
データ ストア
|
文字列 関数
|
数値 関数
|
日付時刻 関数
|
システム 関数
|
DB2
|
ASCII
BLOB
CHAR
CHR
CLOB
CONCAT
DBCLOB
DIFFERENCE
GRAPHIC
HEX
INSERT
LCASE または LOWER
LCASE (SYSFUN スキーマ)
LEFT
LENGTH
LOCATE
LONG_VARCHAR
LONG_VARGRAPHIC
LTRIM
LTRIM (SYSFUN スキーマ)
POSSTR
REPEAT
REPLACE
RIGHT
RTRIM
RTRIM (SYSFUN スキーマ)
|
ABS または
ABSVAL
ACOS
ASIN
ATAN
ATANH
ATAN2
BIGINT
CEILING または CEIL
COS
COSH
COT
DECIMAL
DEGREES
DIGITS
DOUBLE
EXP
FLOAT
FLOOR
INTEGER
LN
LOG
LOG10
MOD
POWER
RADIANS
RAND
REAL
|
DATE
DAY
DAYNAME
DAYOFWEEK
DAYOFYEAR
DAYS
HOUR
JULIAN_DAY
MICROSECOND
MIDNIGHT_SECONDS
MINUTE
MONTH
MONTHNAME
QUARTER
SECOND
TIME
TIMESTAMP
TIMESTAMP_ISO
TIMESTAMPDIFF
WEEK
YEAR
|
COALESCE
DEREF
DLCOMMENT
DLLINKTYPE
DLURLCOMPLETE
DLURLPATH
DLURLPATHONLY
DLURLSCHEME
DLURLSERVER
DLVALUE
EVENT_MON_STATE
GENERATE_UNIQUE
NODENUMBER
NULLIF
PARTITION
RAISE_ERROR
TABLE_NAME
TABLE_SCHEMA
TRANSLATE
TYPE_ID
TYPE_NAME
TYPE_SCHEMA
VALUE
|
DB2 (続き)
|
SOUNDEX
SPACE
SUBSTR
TRUNCATE または TRUNC
UCASE または UPPER
VARCHAR
VARGRAPHIC
|
ROUND
SIGN
SIN
SINH
SMALLINT
SQRT
TAN
TANH
TRUNCATE
|
|
|
Informix
|
CONCAT
LEFT
LENGTH
LTRIM
REPLACE
RTRIM
SUBSTRING
|
ABS
ACOS
ASIN
ATAN
ATAN2
COS
COT
EXP
FLOOR
LOG
LOG10
MOD
PI
POWER
ROUND
SIN
SQRT
TAN
TRUNCATE
|
CURDATE
CURTIME
DAYOFMONTH
DAYOFWEEK
MONTH
NOW
TIMESTAMPADD
TIMESTAMPDIFF
YEAR
|
DATABASE
USER
|
Oracle
|
ASCII
BIT_LENGTH
CHAR
CONCAT
INSERT
LCASE
LEFT
LENGTH
LOCATE
LOCATE2
LTRIM
OCTET_LENGTH
REPEAT
REPLACE
RIGHT
RTRIM
SOUNDEX
SPACE
SUBSTRING
UCASE
|
ABS
ACOS
ASIN
ATAN
ATAN2
CEILING
COS
COT
EXP
FLOOR
LOG
LOG10
MOD
PI
POWER
ROUND
SIGN
SIN
SQRT
TAN
TRUNCATE
|
CURDATE
DAYNAME
DAYOFMONTH
DAYOFWEEK
DAYOFYEAR
HOUR
MINUTE
MONTH
MONTHNAME
NOW
QUARTER
SECOND
WEEK
YEAR
|
IFNULL
USER
|
SQL Server
|
ASCII
CHAR
CONCAT
DIFFERENCE
INSERT
LCASE
LEFT
LENGTH
LOCATE
LTRIM
REPEAT
REPLACE
RIGHT
RTRIM
SOUNDEX
SPACE
SUBSTRING
UCASE
|
ABS
ACOS
ASIN
ATAN
ATAN2
CEILING
COS
COT
DEGREES
EXP
FLOOR
LOG
LOG10
MOD
PI
POWER
RADIANS
RAND
ROUND
SIGN
SIN
SQRT
TAN
TRUNCATE
|
DAYNAME
DAYOFMONTH
DAYOFWEEK
DAYOFYEAR
EXTRACT
HOUR
MINUTE
MONTH
MONTHNAME
NOW
QUARTER
SECOND
TIMESTAMPADD
TIMESTAMPDIFF
WEEK
YEAR
|
DATABASE
IFNULL
USER
|
Sybase
|
ASCII
CHAR
CONCAT
DIFFERENCE
INSERT
LCASE
LEFT
LENGTH
LOCATE
LTRIM
REPEAT
RIGHT
RTRIM
SOUNDEX
SPACE
SUBSTRING
UCASE
|
ABS
ACOS
ASIN
ATAN
ATAN2
CEILING
COS
COT
DEGREES
EXP
FLOOR
LOG
LOG10
MOD
PI
POWER
RADIANS
RAND
ROUND
SIGN
SIN
SQRT
TAN
|
DAYNAME
DAYOFMONTH
DAYOFWEEK
DAYOFYEAR
HOUR
MINUTE
MONTH
MONTHNAME
NOW
QUARTER
SECOND
TIMESTAMPADD
TIMESTAMPDIFF
WEEK
YEAR
|
DATABASE
IFNULL
USER
|
外部結合のエスケープ シーケンス
JDBC は、SQL92 の左、右、および完全外部結合の構文をサポートしています。外部結合で使用されるエスケープ シーケンスは次のとおりです。
{oj outer-join
}
outer-join は次のようになります。
table-reference {LEFT | RIGHT | FULL} OUTER JOIN
{table-reference
| outer-join} ON search-condition
各値の説明は次のとおりです。
table-reference はデータベース テーブル名です。
search-condition はテーブルに使用する結合条件です。
例 :
SELECT Customers.CustID, Customers.Name, Orders.OrderID, Orders.Status
FROM {oj Customers LEFT OUTER JOIN
Orders ON Customers.CustID=Orders.CustID}
WHERE Orders.Status='OPEN'
表 C-3 に、各データ ストア用の BEA WebLogic Type 4 JDBC ドライバでサポートされている外部結合のエスケープ シーケンスを示します。
表 C-3 サポートされている外部結合のエスケープ シーケンス
データ ストア
|
外部結合のエスケープ シーケンス
|
DB2
|
左外部結合 右外部結合 ネストした外部結合
|
Informix
|
左外部結合 右外部結合 ネストした外部結合
|
Oracle
|
左外部結合 右外部結合 ネストした外部結合
|
SQL Server
|
左外部結合 右外部結合 完全外部結合 ネストした外部結合
|
Sybase
|
左外部結合 右外部結合 ネストした外部結合
|
プロシージャ呼び出しのエスケープ シーケンス
プロシージャは、データ ストアに格納されている実行可能なオブジェクトです。一般には、コンパイル済みの SQL 文です。プロシージャを呼び出すためのエスケープ シーケンスは次のとおりです。
{[?=]call procedure-name
[([parameter
][,parameter
]...)]}
各値の説明は次のとおりです。
procedure-name は、ストアド プロシージャの名前です。
parameter は、ストアド プロシージャのパラメータです。
注意 : DB2 の場合、ストアド プロシージャを呼び出すときにスキーマ名を使用できません。また、Linux/UNIX/Windows 用の DB2 v8.1 および v8.2 では、ストアド プロシージャにリテラルのパラメータ値を使用できます。サポートされるその他の DB2 バージョンでは、ストアド プロシージャにリテラルのパラメータ値を使用できません。