DBMS_LOB.SUBSTR ще върне RAW за BLOB. Повечето среди ще изобразят това в шестнадесетичен формат. Можете да използвате функцията 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;
Това връща първите 10 байта от BLOB в десетичен (напр. 0-255), шестнадесетичен и знак. Последният може да изхвърли някакъв неразпечатаем боклук на екрана и, ако наборите от символи на клиента и базата данни не съвпадат, да претърпят някакъв „превод“.
Можете да използвате 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