Oracle
 sql >> Database >  >> RDS >> Oracle

leggi il primo 1kb di un blob da Oracle

DBMS_LOB.SUBSTR restituirà, per un BLOB, un RAW. La maggior parte degli ambienti lo renderà in formato esadecimale. Puoi utilizzare la funzione DUMP per visualizzarlo in altri formati.

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;

Questo restituisce i primi 10 byte del BLOB in decimale (es. 0-255), esadecimale e carattere. Quest'ultimo può lanciare sullo schermo spazzatura non stampabile e, se i set di caratteri del client e del database non corrispondono, subire una "traduzione".

Puoi utilizzare UTL_RAW.CAST_TO_VARCHAR2 che potrebbe darti ciò che desideri.

select utl_raw.cast_to_varchar2(dbms_lob.substr(product_image,10,1)) chr 
from APEX_DEMO.DEMO_PRODUCT_INFO
where product_id = 9