0

xmltableを使用してOracleでクエリを実行したいと思います。
すべて正常に機能しますが、xmlノード「article_title」には複数の(n)結果があります。行ごとに結果"<string>Article Name1</string><string>Article Name 2</string>...が返されます。ただし、すべての記事名を1行として返す必要があります。
どうすればこれを実現できますか?

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';
4

2 に答える 2

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';

ここにフィドルがあります

私はmemberあなたが1つname持っているが、多くstringのsを持っているかもしれないと仮定しました

于 2012-06-19T15:21:27.370 に答える