DBMS_LOB.SUBSTR для BLOB вернет RAW. В большинстве сред это будет отображаться в шестнадцатеричном формате.
Вы можете использовать функцию 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