Oracle как обновить blob поле

Задача: Нужно обновить blob поле в БД, но не просто обновить, а дописать информацию к существующим данным.
Инструменты: Oracle, sqlplus
Решение: В предыдущей заметке мы узнали как записать данные в blob поле. Таким же образом можно осуществить обновление данных которые сохранены в blob поле. Это примерно будет выглядеть следующим образом:

UPDATE TABLE_NAME
SET blob_field = UTL_RAW.CAST_TO_RAW('some string value')
WHERE ID = 1;

Но у нас задача немного другая, нам нужно дописать к существующей информации. Для этого воспользуемся функцией преобразования с бинарного вида в varchar2:

UTL_RAW.CAST_TO_VARCHAR2(field_name)

Далее допишем дополнительную информацию и снова запишем нашу новую строку в бинарном виде с помощью функции

UTL_RAW.CAST_TO_RAW(field_name)

В результате в нас получится следующий код:

UPDATE TABLE_NAME
SET blob_field = UTL_RAW.CAST_TO_RAW(UTL_RAW.CAST_TO_VARCHAR2(blob_field) ||' some string value')
WHERE ID = 1;

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