Извлечение последовательности 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;

Есть идеи?:(

0 ответов

Другие вопросы по тегам