Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Lesen Sie zuerst 1 KB eines Blobs von Oracle

DBMS_LOB.SUBSTR gibt für ein BLOB ein RAW zurück. Die meisten Umgebungen rendern das in Hex. Sie können die DUMP-Funktion verwenden, um es in einigen anderen Formaten anzuzeigen.

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;

Dies gibt die ersten 10 Bytes des BLOBs in Dezimal (z. B. 0-255), Hex und Zeichen zurück. Letzteres kann undruckbaren Müll auf den Bildschirm werfen und, wenn die Zeichensätze von Client und Datenbank nicht übereinstimmen, einer 'Übersetzung' unterzogen werden.

Sie können UTL_RAW.CAST_TO_VARCHAR2 verwenden, was Ihnen möglicherweise das gibt, was Sie wollen.

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