从SQL中的另一个xmlsequance提取xmlsequence

从SQL中的另一个xmlsequance提取xmlsequence,sql,oracle,plsql,Sql,Oracle,Plsql,我对xmlsequence有一个小问题。我正在编写PL-SQL(Oracle)代码 比方说,我的XML如下所示: <Row name="Row1"> <Field name="Filed1"> <Value1> </Value1> </Field> <Row name="Row2inRow1"> <Field name="Filed2"> <Value1>

我对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>

有什么想法吗(

Quick advice-XMLSequence是一个过时的函数。您应该改用XMLTable。您的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>
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;