[英]Replace or Update text in XML
我有一列關於XML數據。
SELECT roll_id, EXTRACT (xml_data, '/root/xmldata/empid') AS empid
FROM employee_data
WHERE roll_id IN (1, 2)
結果:
roll_id empid
1 <empid>A11</empid>
2 <empid/>
如果我在更新查詢下運行,它將僅更新roll_id1。這不會影響roll_id2。有人可以建議我如何更新roll_id 2嗎? 我應該為roll_id運行替換嗎?
UPDATE employee_data
SET xml_data =
UPDATEXML (xml_data
,'/root/xmldata/empid/text()'
,'111')
WHERE roll_id IN (1,2)
從xpath刪除text()。
.../empid/text()
-您正在尋找帶有文本節點的empid。
... / empid`-您正在尋找空虛。
UPDATE employee_data
SET xml_data =
UPDATEXML (xml_data
,'/root/xmldata/empid'
,'111')
WHERE roll_id IN (1,2)
注意。 oracle 11.2不推薦使用updatexml
和其他xml修改方法。 您應該使用。
update employee_data
set xml_data = xmlquery('copy $d := .
modify (
for $i in $d/root/xmldata/empid
return (
replace value of node $i with "111"
)
)
return $d' passing xml_data returning content) where roll_id IN (1,2)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.