Oracle中有许多XML选项,其中许多在最近的版本中已被弃用。
一个当前选项是使用xquery更新,以下示例假设您的XML位于存储为XMLTYPE的表中。
假设每个’filterCriteriaItem’有两个’value’节点……
SELECT XMLQUERY (
‘copy $copy := .
modify (
for $fci in $copy/filterCriteriaRow/filterCriteriaItem/value[2]
return rename node $fci as “value2”)
return $copy’
PASSING xml_doc
RETURNING CONTENT) new_xml_doc
FROM table_name;
</code>
或者更一般地……
SELECT XMLQUERY (
‘copy $copy := .
modify (
for $fci in $copy/filterCriteriaRow/filterCriteriaItem
for $val at $pos in $fci/value
return rename node $val as
fn:concat(“value”, if ($pos = 1) then “” else $pos))
return $copy’
PASSING xml_doc
RETURNING CONTENT) new_xml_doc
FROM table_name;
</code>