BLOB の場合、DBMS_LOB.SUBSTR は RAW を返します。ほとんどの環境では、16 進数でレンダリングされます。DUMP 関数を使用して、他の形式で表示できます。
select dump(dbms_lob.substr(product_image,10,1),10),
dump(dbms_lob.substr(product_image,10,1),16),
dump(dbms_lob.substr(product_image,10,1),17)
from APEX_DEMO.DEMO_PRODUCT_INFO
where product_id = 9;
これは、BLOB の最初の 10 バイトを 10 進数 (例:0-255)、16 進数、および文字で返します。後者は、印刷できないガベージを画面にスローする可能性があり、クライアントとデータベースの文字セットが一致しない場合は、何らかの「変換」が行われます。
UTL_RAW.CAST_TO_VARCHAR2 を使用すると、必要なものが得られる場合があります。
select utl_raw.cast_to_varchar2(dbms_lob.substr(product_image,10,1)) chr
from APEX_DEMO.DEMO_PRODUCT_INFO
where product_id = 9