我一直在处理 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>
现在我想做的是用“价格> 10”替换所有书籍的标题作为附加的“-昂贵”标签。
' 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() 过程来完成它,但仍然无法向前迈出一步。
任何帮助将不胜感激。