Как добавить атрибут в xml, содержащийся в CLOB в базе данных Oracle? - PullRequest
3 голосов
/ 19 февраля 2010

Как добавить атрибут в xml, содержащийся в CLOB в базе данных Oracle? Я могу использовать функцию UpdateXML для обновления существующего атрибута, но он не будет добавлять его.

Ответы [ 3 ]

1 голос
/ 28 мая 2014
with t as (
    select 
        xmltype('<a><b c="2">1</b></a>') x,
        '/a/b' node,   --node where attribute located
        '@d' att,      --attribute name
        'new' val      --new value
    from dual
)
select 
    x,
    insertchildxml(deletexml(x,node||'/'||att), node, att, val) x_new
from t
1 голос
/ 02 ноября 2014

Простой Oracle SQL для добавления «attrname = attrval» ко всем элементам mynode в столбце clobcol xml в каждой строке mytable

update mytable s set
  s.clobcol = insertchildxml(xmltype(s.clobcol)
                            ,'//mynode'
                            ,'@attrname'
                            ,'attrval'
                            ).getclobval();
1 голос
/ 20 февраля 2010

Вы можете использовать комбинацию deleteXml() вместе с appendChildXml(), insertChildXml() или insertXmlBefore(), чтобы удалить существующий узел, а затем снова добавить его с новым включенным атрибутом.

...