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

Oracle-database:Hvordan læser man en BLOB?

Du kan dumpe værdien i hex ved hjælp af UTL_RAW.CAST_TO_RAW(UTL_RAW.CAST_TO_VARCHAR2()) .

SELECT b FROM foo;
-- (BLOB)

SELECT UTL_RAW.CAST_TO_RAW(UTL_RAW.CAST_TO_VARCHAR2(b))
FROM foo;
-- 1F8B080087CDC1520003F348CDC9C9D75128CF2FCA49D1E30200D7BBCDFC0E000000

Dette er praktisk, fordi du dette er det samme format, der bruges til at indsætte i BLOB-kolonner:

CREATE GLOBAL TEMPORARY TABLE foo (
    b BLOB);
INSERT INTO foo VALUES ('1f8b080087cdc1520003f348cdc9c9d75128cf2fca49d1e30200d7bbcdfc0e000000');

DESC foo;
-- Name Null Type 
-- ---- ---- ---- 
-- B        BLOB 

Men på et bestemt tidspunkt (2000 bytes?) overskrider den tilsvarende hex-streng Oracles maksimale strenglængde. Hvis du skal håndtere den sag, bliver du nødt til at kombinere Hvordan får jeg tekstindhold fra BLOB i Oracle SQL med dokumentationen for DMBS_LOB.SUBSTR for en mere kompliceret tilgang, der giver dig mulighed for at se understrenge af BLOB.



  1. Duplikere tabel i MYSQL uden at kopiere en række ad gangen

  2. Krypter data i SQLite

  3. Sådan sammenkædes flere rækker i én kolonne i MySQL

  4. Paginering på forespørgsel (Søg optegnelser på anmodning fra bruger)