【发布时间】:2017-08-26 06:17:35
【问题描述】:
我正在尝试查询表中的 XMLtype 字段,该字段的元素名称在每次出现时递增 1。这些元素可能有 1 到多个级别,我想知道是否有办法对元素名称进行通配符,以便根据名称搜索返回所有元素值,而不是我将所有可能的名称级别联合在一起?在我弄清楚这一步之后,我希望列出或连接结果。
select extractvalue(myXMLfield,'/doc/name1') from myTable
union
select extractvalue(myXMLfield,'/doc/name2') from myTable
union
select extractvalue(myXMLfield,'/doc/name3') from myTable
与对元素名称的某种通配符搜索
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"
【问题讨论】:
-
包含示例 XML 和该数据所需的输出会很有帮助。
-
我添加了一些 XML 和 SQL 输出示例。
标签: oracle oracle12c oracle-xml-db