UTL_RAW.CAST_TO_RAW(UTL_RAW.CAST_TO_VARCHAR2())
を使用して、値を16進数でダンプできます。 。
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バイト?)で、対応する16進文字列がOracleの最大文字列長を超えています。その場合に対処する必要がある場合は、OracleSQLのBLOBからテキストコンテンツを取得するにはどうすればよいですか
DMBS_LOB.SUBSTR<のドキュメント/ code>
BLOBのサブストリングを表示できるようにする、より複雑なアプローチの場合。