Как добавить узел с атрибутами в XML, содержащийся в CLOB в базе данных Oracle? - PullRequest
0 голосов
/ 30 июня 2019

Мне нужно добавить узел с двумя атрибутами, если узел не существует, и обновить значения атрибутов, если узел уже существует.

Сначала, скажем, CONFIG_XML:

<info><a/><b><d required="false" show="false"/></b></info>

Я хочуустановить атрибут показа в true.как это:

<info><a/><b><d required="false" show="true"/></b></info>

И затем, если CONFIG_XML:

<info><a/><b></b></info>

Опять я хочу, чтобы это было:

<info><a/><b><d required="false" show="true"/></b></info>

Для первого яЯ использую эту команду, и она отлично работает:

UPDATE MY_TABLE_NAME  
SET CONFIG_XML =
UPDATEXML(XMLTYPE(CONFIG_XML),
'info/b/d/@show', 'true',
'info/b/dd/@required', 'false').getClobVal()

Для второго я пытаюсь использовать INSERTCHILDXML как-то:

UPDATE MY_TABLE_NAME
SET CONFIG_XML =
INSERTCHILDXML(CONFIG_XML,
'info/b', 'd',
XMLType('<d></d>')).getClobVal()

И яполучил эту ошибку:

Error report -
SQL Error: ORA-00932: inconsistent datatypes: expected - got CLOB
00932. 00000 -  "inconsistent datatypes: expected %s got %s"

Судя по результатам поиска, эта ошибка может иметь разные причины, но в этом случае я понятия не имею, что это может быть.

...