Dの小部屋

忘れやすい私のメモ帳

BLOB列の情報をテキストで出力する。

テーブル構成

desc BLOB_SAMPLE
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 BLOB_ID                                   NOT NULL CHAR(3)
 BLOB_DATA                                          BLOB

SQL

set serveroutput on;
declare
     v_tmp_clob clob;
     v_tmp_int  integer;
     cursor cur_test is select blob_id, blob_data from blob_sample;
begin
     for rec in cur_test loop
          v_tmp_int := ceil(dbms_lob.getlength(rec.blob_data)/2000) - 1;
          for i in 0..v_tmp_int loop
               v_tmp_clob := rawtohex(dbms_lob.substr(rec.blob_data, 2000, 2000*i+1));
               dbms_output.put_line ('->' || v_tmp_clob);
          end loop;
     end loop;
end;
/