在Oracle中更新CLOB XML

时间:2013-05-28 17:33:51

标签: sql oracle plsql

我有一个包含大量XML的CLOB列。我想在该XML中添加一个新属性,比如这个属性:

<name>me</name>

我尝试使用UpdateXML,但我说得不对。

1 个答案:

答案 0 :(得分:2)

CLOB使用XMLType转换为XMLType()XMLType使用CLOB转换为to_clob。以下是一个例子。

create table table_with_clob (myclob clob);

insert into table_with_clob values ('<mytag><subtag>hello world</subtag></mytag>');

UPDATE table_with_clob SET myclob =
   to_clob(INSERTCHILDXML(xmltype(myclob),
   '/mytag', 'subtag',
   XMLType('<subtag>another</subtag>')));

select * from table_with_clob;

输出

myclob
------
<mytag><subtag>hello world</subtag><subtag>another</subtag></mytag>

虽然我认为这不是很有效,你可以更好地将列转换为XMLType并使用它进行操作。