假設我們有以下 XML:
<root>
<item>
<a>a1</a>
<b>b1</b>
<c>c1</c>
<d>d1</d>
<e>e1</e>
</item>
<item>
<a>a2</a>
<b>b2</b>
<c>c2</c>
<d>d2</d>
<e>e2</e>
</item>
...
</root>
如何使用 XMLTABLE 和 PATH 獲得以下結果?
A B ITEM_XML (excluding <d>)
a1 b1 <item><a>a1</a><b>b1</b><c>c1</c><e>e1</e></item>
a2 b2 <item><a>a2</a><b>b2</b><c>c2</c><e>e2</e></item>
請不要使用 DELETEXML,因為它已被棄用。我對如何從 XMLType 中洗掉/排除某些節點特別感興趣。請注意,ITEM_XML 應該像原來一樣列印得很漂亮,這樣把它放在表格中更方便。
uj5u.com熱心網友回復:
從 Oracle Database 12c 第 1 版 (12.1.0.1) 開始,使用 XQuery 更新來更新 XML 資料。(https://docs.oracle.com/en/database/oracle/oracle-database/12.2/adxdb/deprecated-functions-for-updating-XML-data.html)。洗掉節點示例:
UPDATE warehouses SET warehouse_spec =
XMLQuery('copy $tmp := . modify delete node
$tmp/Warehouse/VClearance return $tmp'
PASSING warehouse_spec RETURNING CONTENT)
WHERE warehouse_spec IS NOT NULL;
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/378871.html
