Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Cơ sở dữ liệu Oracle:Làm thế nào để đọc một BLOB?

Bạn có thể kết xuất giá trị dưới dạng hex bằng cách sử dụng 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

Điều này rất hữu ích vì đây là cùng một định dạng được sử dụng để chèn vào các cột BLOB:

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

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

Tuy nhiên, tại một thời điểm nhất định (2000 byte?), Chuỗi hex tương ứng vượt quá độ dài chuỗi tối đa của Oracle. Nếu cần xử lý trường hợp đó, bạn sẽ phải kết hợp Làm cách nào để lấy nội dung văn bản từ BLOB trong Oracle SQL với tài liệu cho DMBS_LOB.SUBSTR cho một cách tiếp cận phức tạp hơn sẽ cho phép bạn xem các chuỗi con của 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. Hàm TO_CHAR (datetime) trong Oracle

  2. Cách thích hợp để đặt ORACLE_HOME?

  3. Oracle - ORA-06502:PL / SQL:lỗi số hoặc giá trị (DBMS_OUTPUT)

  4. Thiết kế lược đồ đơn giản để phân biệt dự báo nhu cầu

  5. Biến ràng buộc được sử dụng trong BEGIN / END bị xóa