Oracle® Fusion Middleware WebLogic Server Type 4 JDBC ドライバ ガイド 11g リリース 1 (10.3.1) B55561-01 |
|
戻る |
次へ |
外部結合やスカラー関数呼び出しなどの言語機能は、データベース システムによって実装されるのが一般的です。これらの機能の構文は、標準的な構文が定義されていても、データベースに固有の場合がよくあります。JDBC では、以下の言語機能の標準的な構文を含むエスケープ シーケンスが定義されています。
日付、時刻、およびタイムスタンプ リテラル
数値、文字列、およびデータ型変換関数などのスカラー関数呼び出し
外部結合
LIKE 句で使用するワイルドカードのエスケープ文字
プロシージャ呼び出し
JDBC で使用されるエスケープ シーケンスは次のとおりです。
{extension}
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 は、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 |
CURDATE CURTIME DATE DAY DAYNAME DAYOFWEEK DAYOFYEAR DAYS HOUR JULIAN_DAY MICROSECOND MIDNIGHT_SECONDS MINUTE MONTH MONTHNAME NOW 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 |
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 に、各データストア用の WebLogic Type 4 JDBC ドライバでサポートされている外部結合のエスケープシーケンスを示します。
LIKE 句でワイルドカード文字 (たとえば % や _) をエスケープするために使用する文字を指定できます。エスケープ文字のエスケープ シーケンスは次のとおりです。
{escape 'escape-character'}
escape-character は、ワイルドカード文字をエスケープするために使用する文字です。
次に例を示します。次の SQL 文では、LIKE 句内で、ワイルドカード文字 % のエスケープ文字としてアスタリスク (*) を使用することを指定しています。
SELECT col1 FROM table1 WHERE col1 LIKE '*%%' {escape '*'}
プロシージャは、データ ストアに格納されている実行可能なオブジェクトです。一般には、コンパイル済みの SQL 文です。プロシージャを呼び出すためのエスケープ シーケンスは次のとおりです。
{[?=]call procedure-name[([parameter][,parameter]...)]}
各要素の説明は次のとおりです。
procedure-name は、ストアド プロシージャの名前です。
parameter は、ストアド プロシージャのパラメータです。
注意 : Linux/UNIX/Windows 上の DB2 では、ストアド プロシージャを呼び出す際にカタログ名を使用することはできません。また、Linux/UNIX/Windows 用の DB2 v8.1 および v8.2 では、ストアド プロシージャにリテラルのパラメータ値を使用できます。サポートされるその他の DB2 バージョンでは、ストアド プロシージャにリテラルのパラメータ値を使用できません。 |