Обновление столбца Clob в Oracle - PullRequest
2 голосов
/ 23 августа 2011

У меня есть таблица с именем ABC, которая содержит данные CLOB. Я хочу обновить столбец, чтобы вставить строку в определенную позицию в этом столбце Clob.

Строка для вставки:

<nv_pair>
<name identifier="XYZ"></name>
<value identifier="XYZ"></value>
</nv_pair>

Данные Clob:

<form> <nv_pair></nv_pair> <nv_pair></nv_pair><nv_pair></nv_pair><nv_pair></nv_pair></form>

Положение для вставки: перед </form>

Ответы [ 2 ]

4 голосов
/ 23 августа 2011

Посмотрите на пакет DBMS_LOB.

Кстати, возможно, стоит изучить возможность отказа от CLOB и использования встроенных в Oracle возможностей XML (хотя я не знаком с этим).

2 голосов
/ 23 августа 2011

В зависимости от того, какая у вас версия Oracle, вы можете использовать функцию regexp_replace:

update abc
set clob_val =
  regexp_replace(clob_val,
                 '^(.+)(</form>)',
                 '\1<nv_pair><name identifier="XYZ"></name><value identifier="XYZ">/value>/nv_pair>\2')
where ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...