ROW 1:
<a:employees xmlns:a="abc.com/123" xmlns:b="xyz.net/456">
<a:emp>
<a:name>Scott</a:name>
<b:favorites>
<b:color>red</b:color>
<b:color>orange</b:color>
</b:favorites>
</a:emp>
<a:emp>
<a:name>John</a:name>
<b:favorites>
<b:color>blue</b:color>
<b:color>green</b:color>
</b:favorites>
</a:emp>
</a:employees>
Row2:
<a:employees xmlns:a="abc.com/123" xmlns:b="xyz.net/456" xmlns:c="pqr.edu/789>
<a:emp>
<a:name>Tiger</a:name>
<b:favorites>
<c:phone>apple</c:phone>
<c:phone>samsung</c:phone>
<b:color>purple</b:color>
<b:color>pink</b:color>
</b:favorites>
</a:emp>
<a:emp>
<a:name>peter</a:name>
<b:favorites>
<c:phone>nokia</c:phone>
<b:color>violet</b:color>
<b:color>indigo</b:color>
</b:favorites>
</a:emp>
</a:employees>
以上两个xml文档是表your_table的xml列xml_col的行。 我尝试使用以下查询将xml列解析为关系数据。
select x.*
from your_table y,
XMLTable(XMLNamespaces('abc.com/123' as "a",
'xyz.net/456 as "b",'pqr.edu/789 as "c"),'*:employees'
Passing y.xml_col
Columns
name varchar2(20) PATH '//*name',
phone varchar2(20) PATH '//*phone',
color varchar2(20) Path '//*:color')x
我收到以下错误消息 &#34; oracle中的XMLTABLE - XQuery动态类型不匹配:预期的单例序列 - 得到多项序列&#34;
问题是由于有多种颜色和手机出现。我希望多个出现在多行中。即使名称值重复,我也不介意。 输出应类似于以下格式。
Name Phone Color
Scott red
Scott orange
John blue
John green
Tiger Apple purple
Tiger samsung pink
peter nokia violet
peter indigo
提前致谢