3

Oracle データベースの CLOB に含まれる xml に属性を追加するにはどうすればよいですか? UpdateXML 関数を使用して既存の属性を更新できますが、追加されません。

4

3 に答える 3

1
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
于 2014-05-28T07:27:18.303 に答える
1

mytable のすべての行の clobcol 列 xml のすべての mynode 要素に「attrname=attrval」を追加する単純な Oracle SQL

update mytable s set
  s.clobcol = insertchildxml(xmltype(s.clobcol)
                            ,'//mynode'
                            ,'@attrname'
                            ,'attrval'
                            ).getclobval();
于 2014-11-02T20:18:41.467 に答える
1

、、またはのdeleteXml()いずれかと組み合わせて使用​​して、既存のノードを削除し、新しい属性を含めて再度追加することができます。appendChildXml()insertChildXml()insertXmlBefore()

于 2010-02-19T22:27:55.450 に答える