SQL*PlusでBLOB型のデータを検索すると16進数に変換された表示される。
例えば、以下のテーブルを
カラム名 | データ型 |
ID | CHAR(2) |
BLOB_DATA | BLOB |
SQL*Plusで以下のように検索すると
1 |
select * from blob_tbl; |
↓のような結果が返ってきます。
ID 002 |
ここで、SQLの検索条件でBLOB_DATAカラムを利用したい場合は、DBMS_LOBパッケージのSUBSTRファンクションを利用します。以下、BLOB_DATAが16進数表示で「1F2AA」のデータを検索する場合の利用例。
1 2 |
select * from blob_tbl where DBMS_LOB.SUBSTR(BLOB_DATA,1000,1) = '1F2AA' |
DBMS_LOB.SUBSTR(対象カラム,読み込むバイト数, 読み込み開始バイト位置)で指定する。
パッケージとファンクションの詳細な仕様については、以下参照。
https://docs.oracle.com/cd/E16338_01/timesten.112/b66725/d_lob.htm