Oracle® Fusion Middleware Oracle WebLogic Serverタイプ4 JDBCドライバ 11g リリース1(10.3.5) B61001-03 |
|
![]() 前 |
![]() 次 |
外部結合やスカラー関数呼び出しなどの言語機能は、データベース・システムによって実装されるのが一般的です。これらの機能の構文は、標準的な構文が定義されていても、データベースに固有の場合がよくあります。JDBCでは、以下の言語機能の標準的な構文を含むエスケープ・シーケンスが定義されています。
日付、時刻、およびタイムスタンプ・リテラル
数値、文字列、およびデータ型変換関数などのスカラー関数呼出し
外部結合
LIKE句で使用するワイルドカードのエスケープ文字
プロシージャ呼出し
JDBCで使用されるエスケープ・シーケンスは次のとおりです。
{extension}
Oracleタイプ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は、Oracleタイプ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 |
N/A |
N/A |
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は、各データ・ストア用のOracleタイプ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バージョンでは、ストアド・プロシージャにリテラルのパラメータ値を使用できません。 |