簡體   English   中英

Oracle 11g r2中的XML內容修改

[英]XML Content Modification in Oracle 11g r2

我一直在處理Oracle XML DB(11g R2)中的問題,如下所述:

在帶有名為“ xml_document”的XMLType列的表中說我有以下xml文檔

<?xml encoding="utf-8" ?>
<books>
    <book>
        <author>AUTHORNAME1</author>
        <title>TITLE1</title>
        <price>12.33</price>
    </book>
    <book>
        <author>AUTHORNAME2</author>
        <title>TITLE2</title>
        <price>9.55</price>
    </book>
    <book>
        <author>AUTHORNAME3</author>
        <title>TITLE3</title>
        <price>15.00</price>
    </book>
</books>

現在,我要做的是將所有書籍的書名替換為“ price> 10”,並附加“ -expensive”標簽。

' for $book in ora:view("XML_TABLE")//books/book where $book/price > 10 return replace value of node $book/title with concat($book/title/text(),"-expensive") '

因此,在Oracle SQLDeveloper中執行查詢后,結果XML內容將如下所示。

<?xml encoding="utf-8" ?>
<books>
    <book>
        <author>AUTHORNAME1</author>
        <title>TITLE1-expensive</title>
        <price>12.33</price>
    </book>
    <book>
        <author>AUTHORNAME2</author>
        <title>TITLE2</title>
        <price>9.55</price>
    </book>
    <book>
        <author>AUTHORNAME3</author>
        <title>TITLE3-expensive</title>
        <price>15.00</price>
    </book>
</books>

我已經嘗試使用UPDATEXML(),XMLQUERY()和XMLTABLE()過程來做到這一點,但仍然無法向前邁進。

任何幫助將不勝感激。

  • when沒有XQuery語句(盡管我不能說出Oracle XQuery)。 嘗試where
  • 字符串連接使用concat(str1, [...], str2)而非+運算符完成。

試試這個查詢:

for $book in ora:view("XML_TABLE")//book
where $book/price > 10
return
  replace value of node $book/title
  with concat($book/title/text(), "-expensive")

暫無
暫無

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

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