sql >> Database >  >> RDS >> Oracle

Oracle-database:hoe lees ik een BLOB?

U kunt de waarde in hex dumpen met 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

Dit is handig omdat dit hetzelfde formaat is dat wordt gebruikt voor het invoegen in BLOB-kolommen:

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

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

Op een bepaald punt (2000 bytes?) overschrijdt de bijbehorende hex-string echter de maximale stringlengte van Oracle. Als je die zaak moet behandelen, moet je Hoe krijg ik tekstuele inhoud van BLOB in Oracle SQL met de documentatie voor DMBS_LOB.SUBSTR voor een meer gecompliceerde benadering waarmee u substrings van de BLOB kunt zien.



  1. Wat is de beste manier om afbeeldingen van gebruikers op te slaan met PHP en MySQL?

  2. WAMP Geen toegang op lokaal netwerk 403 Verboden

  3. Oracle 21c verbinden met SQL Server

  4. pg gem sslmode=verify-full, waar certificaten plaatsen?