Я пытаюсь увидеть из консоли SQL, что находится внутри Oracle BLOB.
Я знаю, что он содержит довольно большой текст, и я хочу просто увидеть текст, но следующий запрос указывает только на то, что в этом поле есть BLOB:
select BLOB_FIELD from TABLE_WITH_BLOB where ID = '<row id>';
результат, который я получаю, не совсем то, что я ожидал:
BLOB_FIELD ----------------------- oracle.sql.BLOB@1c4ada9
Итак, какие магические заклинания я могу использовать, чтобы превратить BLOB в его текстовое представление?
PS: Я просто пытаюсь посмотреть содержимое BLOB-объекта из консоли SQL (Eclipse Data Tools), а не использовать его в коде.
SQL Developer также предоставляет эту функциональность:
Дважды щелкните ячейку сетки результатов и нажмите кнопку изменить:
Затем в правой верхней части всплывающего окна «Просмотреть как текст» (вы даже можете видеть изображения ..)
И это все!
источник
Вы можете использовать приведенный ниже SQL для чтения полей BLOB из таблицы.
источник
Если вы хотите искать внутри текста, а не просматривать его, это работает:
источник
Ответ Barn сработал для меня с модификацией, потому что мой столбец не сжат. Быстрое и грязное решение:
источник
Некоторое время я боролся с этим и реализовал решение PL / SQL, но позже понял, что в Toad вы можете просто дважды щелкнуть ячейку сетки результатов, и появится редактор с текстовым содержимым. (я использую Toad v11)
источник
Если ваш текст сжат внутри большого двоичного объекта с использованием алгоритма DEFLATE, и он довольно большой, вы можете использовать эту функцию для его чтения.
Затем запустите select, чтобы получить текст
Надеюсь, это кому-то поможет.
источник
Используйте этот SQL, чтобы получить первые 2000 символов BLOB.
Примечание: это связано с тем, что Oracle не сможет обработать преобразование BLOB, длина которого превышает 2000.
источник
Вы можете попробовать это:
Однако он будет ограничен 4000 байтами
источник
Работал у меня,
источник
Используйте
TO_CHAR
функцию.Обращенные
NCHAR
,NVARCHAR2
,CLOB
, илиNCLOB
данные в набор символов базы данных. Возвращаемое значение всегдаVARCHAR2
.источник