6.1 LOBでの使用がサポートされるSQLファンクションおよび演算子

引数としてVARCHAR2列を取る多数のSQL演算子およびファンクションは、LOB列も受け入れます。次のリストに、LOBとの併用がサポートされるSQL関数および演算子のカテゴリを示します。

SQL操作/関数 サポート
連結 サポート対象
比較 一部の比較関数はLOBのサポート対象外
文字関数 サポート対象
変換 一部の変換関数は、LOBのサポート対象外
集計関数 サポート対象外
Unicode関数 サポート対象外

次の表に、オペランドまたは引数としてVARCHAR2型を受け入れる、またはVARCHAR2値を戻す各操作の詳細を示します。

  • 「SQL」列は、CLOBデータ型とNCLOBデータ型でサポートされる組込み関数と演算子を示します。LENGTH関数は、BLOBデータ型でもサポートされます。
  • PL/SQL列には、LOBでサポートされるPL/SQL組込み関数および演算子が示されています。
  • 表の「SQL」列または「PL/SQL」列が「CNV」となっている関数は、CLOBからVARCHAR2などの文字データ型に変換することで実行されます。SQL環境では、CLOBの最初の4KBのみが変換されて操作に使用されます。PL/SQL環境では、CLOBの最初の32KBのみが変換されて操作に使用されます。

表6-1 LOBでのSQL VARCHAR2ファンクションおよび演算子

分類 演算子および関数 SQLの例/コメント SQL PL/SQL

連結

||CONCAT()

Select clobCol || clobCol2 from tab;

はい

はい

比較

= , !=, >, >=, <, <=, <>, ^=

if clobCol=clobCol2 then...

いいえ

はい

比較

INNOT IN

if clobCol NOT IN (clob1, clob2, clob3) then...

いいえ

はい

比較

SOMEANYALL

if clobCol < SOME (select clobCol2 from...) then...

いいえ

該当なし

比較

BETWEEN

if clobCol BETWEEN clobCol2 and clobCol3 then...

いいえ

はい

比較

LIKE [ESCAPE]

if clobCol LIKE '%pattern%' then...

はい

はい

比較

IS [NOT] NULL

where clobCol IS NOT NULL

はい

はい

文字関数

INITCAPNLS_INITCAP

select INITCAP(clobCol) from...

CNV

CNV

文字関数

LOWERNLS_LOWERUPPERNLS_UPPER

...where LOWER(clobCol1) = LOWER(clobCol2)

はい

はい

文字関数

LPADRPAD

select RPAD(clobCol, 20, ' La') from...

はい

はい

文字関数

TRIMLTRIMRTRIM

...where RTRIM(LTRIM(clobCol,'ab'), 'xy') = 'cd'

はい

はい

文字関数

REPLACE

select REPLACE(clobCol, 'orig','new') from...

はい

はい

文字関数

SOUNDEX

...where SOUNDEX(clobCOl) = SOUNDEX('SMYTHE')

CNV

CNV

文字関数

SUBSTR

...where substr(clobCol, 1,4) = like 'THIS'

はい

はい

文字関数

TRANSLATE

select TRANSLATE(clobCol, '123abc','NC') from...

CNV

CNV

文字関数

ASCII

select ASCII(clobCol) from...

CNV

CNV

文字関数

INSTR

...where instr(clobCol, 'book') = 11

はい

はい

文字関数

LENGTH

...where length(clobCol) != 7;

はい

はい

文字関数

NLSSORT

...where NLSSORT (clobCol,'NLS_SORT = German') > NLSSORT ('S','NLS_SORT = German')

CNV

CNV

文字関数

INSTRBSUBSTRBLENGTHB

この3つのファンクションは、シングルバイト文字セットを使用するCLOBの場合にのみサポートされます。(LENGTHBは、CLOBと同様、BLOBについてもサポートされます。)

はい

はい

文字関数 - 正規表現

REGEXP_LIKE

このファンクションは、文字列内でパターンを検索します。このファンクションを問合せのWHERE句で使用すると、指定した正規表現と一致する行が戻されます。

はい

はい

文字関数 - 正規表現

REGEXP_REPLACE

このファンクションは文字列内でパターンを検索し、そのパターンの各出現箇所を指定したパターンで置き換えます。

はい

はい

文字関数 - 正規表現

REGEXP_INSTR

このファンクションは、指定した正規表現パターンの出現箇所を文字列内で検索します。検索する出現箇所と検索開始位置を指定します。文字列内で一致が検出された位置を示す整数が戻されます。

はい

はい

文字関数 - 正規表現

REGEXP_SUBSTR

このファンクションは、指定した正規表現パターンと一致する実際の部分文字列を戻します。

はい

はい

変換

CHARTOROWID

CHARTOROWID(clobCol)

CNV

CNV

変換

COMPOSE

COMPOSE('string')

CHARVARCHAR2CLOBNCHARNVARCHAR2およびNCLOBデータ型の文字列を与えると、Unicode文字列が返されます。

CNV

CNV

変換

DECOMPOSE

DECOMPOSE('str' [CANONICAL | COMPATIBILITY] )

Unicode文字の引数で有効です。

CNV

CNV

変換

HEXTORAW

HEXTORAW(CLOB)

いいえ

CNV

変換

CONVERT

select CONVERT(clobCol,'WE8DEC','WE8HP') from...

はい

CNV

変換

TO_DATE

TO_DATE(clobCol)

CNV

CNV

変換

TO_NUMBER

TO_NUMBER(clobCol)

CNV

CNV

変換

TO_TIMESTAMP

TO_TIMESTAMP(clobCol)

いいえ

CNV

変換

TO_MULTI_BYTE

TO_SINGLE_BYTE

TO_MULTI_BYTE(clobCol)

TO_SINGLE_BYTE(clobCol)

CNV

CNV

変換

TO_CHAR

TO_CHAR(clobCol)

はい

はい

変換

TO_NCHAR

TO_NCHAR(clobCol)

はい

はい

変換

TO_LOB

INSERT INTO... SELECT TO_LOB(longCol)...

TO_LOBは、LONG列を持つ表をSELECT FROMに指定して、LOB列を持つ表を作成またはその表に挿入する場合にのみ使用できることに注意してください。

該当なし

該当なし

変換

TO_CLOB

TO_CLOB(varchar2Col)

はい

はい

変換

TO_NCLOB

TO_NCLOB(varchar2Clob)

はい

はい

集計関数

COUNT

select count(clobCol) from...

いいえ

該当なし

集計関数

MAXMIN

select MAX(clobCol) from...

いいえ

該当なし

集計関数

GROUPING

select grouping(clobCol) from... group by cube (clobCol);

いいえ

該当なし

その他の関数

GREATESTLEAST

select GREATEST (clobCol1, clobCol2) from...

いいえ

CNV

その他の関数

DECODE

select DECODE(clobCol, condition1, value1, defaultValue) from...

CNV

CNV

その他の関数

NVL

select NVL(clobCol,'NULL') from...

はい

はい

その他の関数

DUMP

select DUMP(clobCol) from...

いいえ

該当なし

その他の関数

VSIZE

select VSIZE(clobCol) from...

いいえ

該当なし

Unicode

INSTR2SUBSTR2LENGTH2LIKE2

これらのファンクションは、UCS2コード・ポイント・セマンティクスを使用します。

いいえ

CNV

Unicode

INSTR4SUBSTR4LENGTH4LIKE4

これらのファンクションは、UCS4コード・ポイント・セマンティクスを使用します。

いいえ

CNV

Unicode

INSTRCSUBSTRCLENGTHCLIKEC

これらのファンクションは、完全なキャラクタ・セマンティクスを使用します。

いいえ

CNV

関連項目: