2

我可以写:

update my_table
set xml = updateXML(xml, '/a/b', '1')
where document_id = 123

现在,如果在同一个更新查询中我还想将 /a/c 设置为 2(此外 /a/b 设置为 1)怎么办?我很想写:

update my_table
set 
    xml = updateXML(xml, '/a/b', '1'),
    xml = updateXML(xml, '/a/c', '2')
where document_id = 123

但这给了我一个“ORA-00957:重复的列名”。关于如何做到这一点的任何建议?

4

2 回答 2

5

文档表明 XPath 字符串和表达式可以重复 http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/functions205.htm#i1134878

所以试试

更新 my_table 集 xml = updateXML(xml, '/a/b', '1', '/a/c', '2') where document_id = 123

于 2009-01-02T00:36:23.343 回答
1

更新 my_table 设置
xml = updateXML(xml, '/a/b/text()', '1','/a/c/text()','2') where document_id = 123

于 2010-04-26T13:06:26.530 回答