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.