Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Baza danych Oracle:Jak czytać BLOB?

Możesz zrzucić wartość w szesnastce za pomocą 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

Jest to przydatne, ponieważ jest to ten sam format, który jest używany do wstawiania do kolumn BLOB:

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

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

Jednak w pewnym momencie (2000 bajtów?) odpowiedni ciąg szesnastkowy przekracza maksymalną długość ciągu Oracle. Jeśli musisz zająć się tą sprawą, musisz połączyć Jak uzyskać zawartość tekstową z BLOB w Oracle SQL z dokumentacją dla DMBS_LOB.SUBSTR dla bardziej skomplikowanego podejścia, które pozwoli Ci zobaczyć podciągi BLOB.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wprowadzenie do obsługi wyjątków PL/SQL w bazie danych Oracle

  2. Przykład zbiorczego zbierania danych Oracle PL/SQL z wyjątkami zapisu

  3. Lepszy sposób na ustrukturyzowanie instrukcji PL/SQL IF THEN?

  4. Jaka jest różnica między tabelą tymczasową a globalną tabelą tymczasową w Oracle?

  5. Operator Oracle nie jest równy