Задача: Есть таблица с неким набором полей, среди которых есть 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().