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().

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