Oracle
 sql >> Base de données >  >> RDS >> Oracle

lire le premier 1kb d'un blob d'oracle

DBMS_LOB.SUBSTR renverra, pour un BLOB, un RAW. La plupart des environnements afficheront cela en hexadécimal. Vous pouvez utiliser la fonction DUMP pour l'afficher dans d'autres formats.

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;

Cela renvoie les 10 premiers octets du BLOB en décimal (par exemple 0-255), hexadécimal et caractère. Ce dernier peut jeter des déchets non imprimables à l'écran et, si les jeux de caractères du client et de la base de données ne correspondent pas, subir une "traduction".

Vous pouvez utiliser UTL_RAW.CAST_TO_VARCHAR2 qui peut vous donner ce que vous voulez.

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