Извлечение последовательности xml из другой последовательности xml в SQL
У меня небольшая проблема с xmlsequence. Я кодирую в PL-SQL (Oracle)
Допустим, мой XML выглядит так:
<Row name="Row1">
<Field name="Filed1">
<Value1>
</Value1>
</Field>
<Row name="Row2inRow1">
<Field name="Filed2">
<Value1>
</Value1>
</Field>
</Row>
<Row name="Row2inRow1">
<Field name="Filed2">
<Value1>
</Value1>
</Field>
</Row>
<Row name="Row1">
<Field name="Filed1">
<Value1>
</Value1>
</Field>
<Row name="Row2inRow1">
<Field name="Filed2">
<Value1>
</Value1>
</Field>
</Row>
<Row name="Row2inRow1">
<Field name="Filed2">
<Value1>
</Value1>
</Field>
</Row>
У него в 2 раза больше "Row1", который умножается, более того, внутри Row1 я умножил "Row2inRow1".
Проблема в том, что я хотел бы выбрать значения из Ro2InRow1 и из Row1, чтобы объединить их, эффект должен быть:
Значение1 (с 1-го ряда1) || Value1 (от 1-го Row2inRow1)
Значение1 (с 1-го ряда1) || Value1 (от 2nd Row2InRow1)
Значение1 (со 2-й строки1) || Value1 (от 3-го Row2inRow1)
Значение1 (со 2-й строки1) || Value1 (от 4-го Row2InRow1)
Я пытался как-то кодировать, но не могу заставить свой запрос работать правильно:
declare
xml_data xmldata;
begin
for rec1 in(select extractvalue(value(x),'//Field[@name="Filed1"]/Value1') ValueOfField1,
from table(xmlsequence(extract(xml_data.data,'//Row[@name="Row1"]')))x )
loop
dbms_output.put_line('1 : '|| ValueOfField1);
for rec2 in(select extractvalue(value(x),'//Field[@name="Filed2"]/Value1') ValueOfField2,
from table(xmlsequence(extract(xml_data.data,'//Row[@name="Row2inRow1"]')))k ) --? What here!
loop
dbms_output.put_line('1 : '|| ValueOfField2);
end loop;
end loop;
end;
Есть идеи?:(