Ожидаемая последовательность одной тонны — получена последовательность из нескольких элементов для столбца xml, содержащего пространства имен.

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 находятся строки столбца xml xml_col таблицы your_table. Я попытался разобрать столбцы 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

Я получаю следующее сообщение об ошибке: «XMLTABLE в oracle — несоответствие динамического типа XQuery: ожидаемая одноэлементная последовательность — получена последовательность из нескольких элементов»

Проблема связана с наличием нескольких цветных и телефонных вхождений. Я хочу, чтобы несколько вхождений находились в нескольких строках. Я не возражаю, даже если значение имени повторяется. Выходные данные должны быть аналогичны приведенному ниже формату.

   Name     Phone       Color
   Scott                red
   Scott                orange
   John                 blue
   John                 green
   Tiger    Apple       purple
   Tiger    samsung     pink
   peter    nokia       violet
   peter                indigo

заранее спасибо


person shiva    schedule 11.09.2014    source источник
comment
stackoverflow.com/questions/23412515/   -  person har07    schedule 11.09.2014
comment
Я проверил сообщение выше, но этот запрос не содержит пространств имен. Структура xml также отличается. Я ищу запрос, который содержит пространства имен. Спасибо за ответ   -  person shiva    schedule 11.09.2014