ORA-01465: invalid hex number

Задача: Есть таблица с неким набором полей, среди которых есть blob поле, нужно записать строку в blob поле. При создании простого запроса — возникает ошибка: ORA-01465: invalid hex number
Инструменты: Oracle, sqlplus
Решение: Для решения данной задачи нам необходимо:

  • Таблица с blob полем
CREATE TABLE TABLE_NAME(blob_field raw(1000));
  • Запрос для добавления данных
INSET INTO TABLE_NAME(blob_field) VALUES('some string value');

В результате выполнения данного запроса мы получим ошибку:

ORA-01465: invalid hex number

  • Воспользуемся функцией для преобразования строки в RAW

UTL_RAW.CAST_TO_RAW(<текст или колонка для преобразования>)

  • В результате наш запрос примет следующий вид:
INSET INTO TABLE_NAME(blob_field) VALUES(UTL_RAW.CAST_TO_RAW('some string value'));

PS: Для предотвращения ошибки (ORA-01465: invalid hex number) при манипуляции со строковыми данными, которые нужно записать в blob поле, можно воспользоваться функцией UTL_RAW.CAST_TO_RAW().

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *