3

如何向 Oracle 数据库的 CLOB 中包含的 xml 添加属性?我可以使用 UpdateXML 函数来更新现有属性,但它不会添加一个。

4

3 回答 3

1

您可以使用 , 或 的组合deleteXml()appendChildXml()删除insertChildXml()现有insertXmlBefore()节点,然后使用现在包含的新属性重新添加它。

于 2010-02-19T22:27:55.450 回答
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

简单的 Oracle SQL 将“attrname=attrval”添加到 mytable 中每一行的 clobcol 列 xml 中的所有 mynode 元素

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