JDBC エスケープ構文は、InteractiveSQL を含む JDBC アプリケーションで使用できます。エスケープ構文を使用して、使用しているデータベース管理システムとは関係なくストアドプロシージャーを呼び出すことができます。エスケープ構文の一般的な形式は次のようになります。
{ keyword parameters }
次のキーワードセットがあります。
{d date-string} date-string は、SQL Anywhere が受け取ることのできる任意の日付値です。
{t time-string} time-string は、SQL Anywhere が受け取ることのできる任意の時刻値です。
{ts date-string time-string} date-string time-string は、SQL Anywhere が受け取ることのできる任意のタイムスタンプ値です。
{guid uuid-string} uuid-string は、任意の有効な GUID 文字列です (例:41dfe9ef-db91-11d2-8c43-006008d26a6f)。
{oj outer-join-expr} outer-join-expr は、SQL Anywhere が受け取ることのできる有効な OUTER JOIN 式です。
{? = call func(p1,...)} func は、SQL Anywhere が受け取ることのできる任意の有効な関数呼び出しです。
{call proc(p1,...)} proc は、SQL Anywhere が受け取ることのできる任意の有効なストアドプロシージャー呼び出しです。
{fn func(p1,...)} func は、以下に示すいずれかの関数ライブラリです。
エスケープ構文を使用して、JDBC ドライバーによって実装される関数ライブラリにアクセスできます。このライブラリには、数値、文字列、時刻、日付、システム関数が含まれています。
たとえば、次のコマンドを実行すると、データベース管理システムの種類にかかわらず現在の日付を取得できます。
SELECT { FN CURDATE() } |
使用できる関数は、使っている JDBC ドライバーによって異なります。次の表は、SQL Anywhere JDBC と jConnect ドライバーによってサポートされている関数を示します。
数値関数 | 文字列関数 | システム関数 | 日付/時刻関数 |
---|---|---|---|
ABS | ASCII | DATABASE | CURDATE |
ACOS | BIT_LENGTH | IFNULL | CURRENT_DATE |
ASIN | CHAR | USER | CURRENT_TIME |
ATAN | CHAR_LENGTH | CURRENT_TIMESTAMP | |
ATAN2 | CHARACTER_LENGTH | CURTIME | |
CEILING | CONCAT | DAYNAME | |
COS | DIFFERENCE | DAYOFMONTH | |
COT | INSERT | DAYOFWEEK | |
DEGREES | LCASE | DAYOFYEAR | |
EXP | LEFT | EXTRACT | |
FLOOR | LENGTH | HOUR | |
LOG | LOCATE | MINUTE | |
LOG10 | LTRIM | MONTH | |
MOD | OCTET_LENGTH | MONTHNAME | |
PI | POSITION | NOW | |
POWER | REPEAT | QUARTER | |
RADIANS | REPLACE | SECOND | |
RAND | RIGHT | WEEK | |
ROUND | RTRIM | YEAR | |
SIGN | SOUNDEX | ||
SIN | SPACE | ||
SQRT | SUBSTRING | ||
TAN | UCASE | ||
TRUNCATE |
数値関数 | 文字列関数 | システム関数 | 日付/時刻関数 |
---|---|---|---|
ABS | ASCII | DATABASE | CURDATE |
ACOS | CHAR | IFNULL | CURTIME |
ASIN | CONCAT | USER | DAYNAME |
ATAN | DIFFERENCE | CONVERT | DAYOFMONTH |
ATAN2 | LCASE | DAYOFWEEK | |
CEILING | LENGTH | HOUR | |
COS | REPEAT | MINUTE | |
COT | RIGHT | MONTH | |
DEGREES | SOUNDEX | MONTHNAME | |
EXP | SPACE | NOW | |
FLOOR | SUBSTRING | QUARTER | |
LOG | UCASE | SECOND | |
LOG10 | TIMESTAMPADD | ||
PI | TIMESTAMPDIFF | ||
POWER | YEAR | ||
RADIANS | |||
RAND | |||
ROUND | |||
SIGN | |||
SIN | |||
SQRT | |||
TAN |
エスケープ構文を使用している文は、SQL Anywhere、Adaptive Server Enterprise、Oracle、SQL Server、または接続されている他のデータベース管理システムで動作します。
Interactive SQL では、大カッコ ({) は必ず二重にしてください。カッコの間にスペースを入れないでください。"{{" は使用できますが、"{ {" は使用できません。また、文中に改行文字を使用できません。ストアドプロシージャーは Interactive SQL で解析されないため、ストアドプロシージャーではエスケープ構文を使用できません。
たとえば、SQL エスケープ構文を使用して sa_db_info プロシージャーを持つデータベースプロパティを取得するには、InteractiveSQL で次のコマンドを実行します。
{{CALL sa_db_info( 0 ) }} |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |