【发布时间】:2016-04-27 08:45:52
【问题描述】:
我有以下使用 Oracle“pivot XML”生成的格式化 XML,即:
<?xml version="1.0" encoding="UTF-8"?>
<PivotSet>
<item>
<column name="INTERFACE_NO">1</column>
<column name="INTERFACE_NAME_A">abc1</column>
<column name="INTERFACE_L">11</column>
<column name="INTERFACE_R">22</column>
</item>
<item>
<column name="INTERFACE_NO">2</column>
<column name="INTERFACE_NAME_A">abc2</column>
<column name="INTERFACE_L">33</column>
<column name="INTERFACE_R">44</column>
</item>
<item>
<column name="INTERFACE_NO">3</column>
<column name="INTERFACE_NAME_A">abc3</column>
<column name="INTERFACE_L">55</column>
<column name="INTERFACE_R">66</column>
</item>
<item>
<column name="INTERFACE_NO">4</column>
<column name="INTERFACE_NAME_A">abc4</column>
<column name="INTERFACE_L">77</column>
<column name="INTERFACE_R">882</column>
</item>
</PivotSet>
基于上述XML,使用Oracle SQL(11g)如何提取上述所有值?
例如,我一直在使用以下内容,即
select
extractvalue(aggregated_interface_no_xml,'/PivotSet/item[2]/column[1]') aa,
extractvalue(aggregated_interface_no_xml,'/PivotSet/item[2]/column[2]') bb,
extractvalue(aggregated_interface_no_xml,'/PivotSet/item[2]/column[3]') cc,
extractvalue(aggregated_interface_no_xml,'/PivotSet/item[2]/column[4]') dd
from t
但这只会返回与 INTERFACE_NO 2 相关的数据。
我不确定如何针对 /PivotSet/item 传递通配符以返回 XML PivotSet 中每个项目的所有记录?
【问题讨论】:
标签: sql xml oracle plsql oracle11gr2