DBMS_LOB.SUBSTR w przypadku obiektu BLOB zwróci RAW. Większość środowisk wyświetla to w postaci szesnastkowej. Możesz użyć funkcji DUMP, aby wyświetlić ją w innych formatach.
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;
Zwraca to pierwsze 10 bajtów BLOB w postaci dziesiętnej (np. 0-255), szesnastkowej i znakowej. Ten ostatni może wyrzucić na ekran śmieci, których nie można wydrukować, a jeśli zestawy znaków klienta i bazy danych nie pasują do siebie, mogą zostać poddane „tłumaczeniu”.
Możesz użyć UTL_RAW.CAST_TO_VARCHAR2, który może dać ci to, czego chcesz.
select utl_raw.cast_to_varchar2(dbms_lob.substr(product_image,10,1)) chr
from APEX_DEMO.DEMO_PRODUCT_INFO
where product_id = 9