簡體   English   中英

SQL 刪除 XML 中的屬性的查詢

[英]SQL Query which deletes an attribute in XML

我有 XML 類型的專欄。有一個像這樣的 xml

<items>
   <item type="xxx"><items>
   <item type="xxx"><items>
</items>

我需要刪除所有類型屬性。 我知道 oracle 有一些用於 xml 操作的功能,但我不知道如何刪除屬性。

這樣的查詢會是什么樣子?

這是一個使用 Oracle 提供的示例 SQL function deletexml

感謝 Jonas Lincoln,因為我正在使用他的 XPATH 表達式

SELECT deleteXML(xmltype.CREATEXML('<items>
                                       <item type="xxx">a</item>
                                       <item type="xxx">b</item>
                                   </items>'),
                                   '/items/item[@type="xxx"]/@type')
FROM dual  

<items>
   <item>a</item>
   <item>b</item>
</items>                                                         
declare @xml as xml
set @xml = '
<items>
    <item type="xxx">3</item>
    <item type="xxx">4</item>
    </items>'

SET @xml.modify('delete (/items/item[@type="xxx"]/@type)')

select cast(@xml as nvarchar(100))

<items>
  <item>3</item>
  <item>4</item>
</items>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM