0

発生ごとに 1 ずつ増加する要素名を持つテーブルの XMLtype フィールドをクエリしようとしています。これらの要素には 1 から多くのレベルが存在する可能性があり、名前のすべての可能なレベルを結合する代わりに、名前検索に基づいてすべての要素の値を返すように、要素名をワイルドカード化する方法があるかどうか疑問に思っていましたか? このステップを理解した後、結果をリストするか、連結することを検討しています。

select extractvalue(myXMLfield,'/doc/name1') from myTable
union
select extractvalue(myXMLfield,'/doc/name2') from myTable
union
select extractvalue(myXMLfield,'/doc/name3') from myTable

vs 要素名に対するある種のワイルドカード検索

select extractvalue(myXMLfield,'/doc/name%') from myTable

XML サンプル

<doc><name1>NAME_1</name1><name2>NAME_2</name2><name3>NAME_3</name3></doc>

目的の SQL クエリ varchar 連結出力

"NAME_1,NAME_2,NAME_3"
4

1 に答える 1