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
上記以外の関数はこちらのサイトをご覧下さい。