私はこれがあなたが探しているものだと思います-
FOR r IN ( SELECT rownum rn, cells FROM xmltable('/SearchOutput/rowArray/Row' XMLTYPE(l_xmlclob) 列を渡す CELLS XMLTYPE PATH './cellArray') f ) LOOP DBMS_OUTPUT.PUT_LINE('Row :'||r.rn); FOR c IN ( SELECT colid, colval FROM xmltable('for $i in /cellArray/Cell return $i' r.cells 列を渡す COLID NUMBER PATH 'columnId', COLVAL VARCHAR(20) PATH 'valueArray/Value[1]/ value') ) LOOP DBMS_OUTPUT.PUT_LINE('colid, col value:'||c.colid||', '||c.colval);エンドループ; END LOOP;終わり;コード> プレ>
または
FOR r IN ( SELECT rownum rn, cells FROM xmltable('/SearchOutput/rowArray/Row' XMLTYPE(l_xmlclob) 列を渡す CELLS XMLTYPE PATH './cellArray') ) LOOP DBMS_OUTPUT.PUT_LINE('Row:'||r.rn); FOR c IN ( SELECT colid, colval FROM xmltable('/cellArray/Cell' r.cells 列を渡す COLID NUMBER PATH './columnId', COLVAL VARCHAR(20) PATH './valueArray/Value[1]/value') ) LOOP DBMS_OUTPUT.PUT_LINE('colid, col 値:'||c.colid||', '||c.colval);エンドループ; END LOOP;コード> プレ>
出力-
Row:1colid、col 値:1、Ugandacolid、col 値:5、AZ12604823-001colid、col 値:2、IT06686colid、col 値:9、Hu Mics Metab Kcolid、col 値:8、2006- 06-21colid、col 値:7、2006-07-27
プレ>
値[1]
複数行要素の最初のもの、つまり最初の Value
を提供します シングルトン。