Oracle
 sql >> база данни >  >> RDS >> Oracle

База данни на Oracle:Как да четем BLOB?

Можете да изхвърлите стойността в шестнадесетичен, като използвате 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

Това е удобно, защото това е същият формат, използван за вмъкване в BLOB колони:

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

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

Въпреки това, в определен момент (2000 байта?) съответният шестнадесетичен низ надвишава максималната дължина на низа на Oracle. Ако трябва да се справите с този случай, ще трябва да комбинирате Как да получа текстово съдържание от BLOB в Oracle SQL с документация за DMBS_LOB.SUBSTR за по-сложен подход, който ще ви позволи да видите поднизове на 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. Създаване на задание за DBMS_SCHEDULER за Oracle

  2. ... където count(col)> 1

  3. AWS Python Lambda с Oracle

  4. Грешка при изключване на PDB ORA-17528

  5. Как да извлечете номера на седмицата в sql