ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Server タイプ4 JDBCドライバ
11g リリース1(10.3.3)
B61001-01
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストヘ移動
製品
目次へ移動
目次

前
 
次
 

C JDBCのSQLエスケープ・シーケンス

外部結合やスカラー関数呼び出しなどの言語機能は、データベース・システムによって実装されるのが一般的です。これらの機能の構文は、標準的な構文が定義されていても、データベースに固有の場合がよくあります。JDBCでは、以下の言語機能の標準的な構文を含むエスケープ・シーケンスが定義されています。

JDBCで使用されるエスケープ・シーケンスは次のとおりです。

{extension}

WebLogic タイプ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 タイプ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に、各データ・ストア用のWebLogic タイプ4 JDBCドライバでサポートされている外部結合のエスケープ・シーケンスを示します。

表C-3サポートされている外部結合のエスケープ・シーケンス

データ・ストア 外部結合のエスケープ・シーケンス

DB2

左外部結合

右外部結合

ネストした外部結合

Informix

左外部結合

右外部結合

ネストした外部結合

SQL Server

左外部結合

右外部結合

完全外部結合

ネストした外部結合

Sybase

左外部結合

右外部結合

ネストした外部結合


LIKE句で使用するワイルドカードのエスケープ文字のシーケンス

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バージョンでは、ストアド・プロシージャにリテラルのパラメータ値を使用できません。