2012-06-19 28 views
0

我想在Oracle中使用xmltable進行查詢。
一切工作正常,但xml節點「article_title」有多個(n)結果。對於每一行,返回結果"<string>Article Name1</string><string>Article Name 2</string>...。但是我希望每個文章的名稱都作爲一行返回。
我怎樣才能認識到這一點?如何使用XMLTABLE返回多個結果?

SELECT 
    X.* 
FROM 
    myTable C, 
          xmltable (
          '$cust//member' PASSING C.STAT_XML as "cust" 
          COLUMNS 
          name VARCHAR(25) PATH '/member/name', 
          article_title XMLTYPE PATH '//string/text()' 
         ) as X 

WHERE X.name = 'articles'; 
+0

你能不能給我們你的XML的例子? –

回答

0

嘗試是這樣的:

SELECT X.* 
FROM my_table C, 
    xmltable('for $i in $cust//string , $j in $cust//member[./string=$i]/name return <member>{$j}{$i}</member>' 
    passing c.stat_xml AS "cust" 
    columns name varchar2(25) path '/member/name', 
    article_title xmltype path '//string') AS X 
WHERE X.name = 'articles'; 

Here是小提琴

我認爲,每member你有一個name,但可能有許多string小號