oracleでCLOB型データに「distinct」をつけて表示する方法

oracleにはラージオブジェクトというデータ型があります。

ラージオブジェクト (CLOB、NCLOB、BLOB、BFILE) Oracle 9i Oracle 10g

最大格納可能サイズ ブロックサイズ×(4G-1)…最大 8T 〜 128TB(CHUNK サイズ:32KB)バイト(※1)、BFILEでは 4G バイト(Oracle 10g)
Oracle 9iでは各最大 4G-1 バイト」 BFILE は OS のファイルシステムによる制限も受ける。

CLOB 可変長文字列

NCLOB 可変長文字列(Nationalchar版)

BLOB 可変長バイナリ

かなりの文字数を格納できるので便利ですが、少しくせもあります。
データ型が文字型ではないため、文字列比較のための演算子が使えなかったり、
「distinct」が使えなかったり、「ORDER BY句」 、「GROUP BY 句」も使えません。


そんな時に組み込みパッケージの「DBMS_LOB]」を使います。
CLOB型データに「distinct」をつけて検索する場合はこんな感じにします。

SELECT (CLOB型のフィールド名, 長さ, 開始位置) FROM TMP

上記以外の関数はこちらのサイトをご覧下さい。

DBMS_LOB