sql >> データベース >  >> RDS >> Oracle

Oracleパーサーを使用してXMLから最初に発生した値を取得する

    私はこれがあなたが探しているものだと思います-

    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 を提供します シングルトン。




    1. OracleSQLでタイムスタンプを日付に変換する

    2. PostGIS:zとmの次元をクエリする(linestringzm)

    3. SQL * PLUS for Oracleの良い代替手段はありますか?

    4. System.ArgumentException:テーブル型パラメーターには有効な型名が必要です