Oracle
 sql >> Database >  >> RDS >> Oracle

XMLtable con Oracle 11g

Prova questo:

select      X.COUNTRYNAME, Y.STATENAME
from        XMLTEMP
           ,xmltable('/countries/country'
                     passing MYDOC
                     columns COUNTRYNAME varchar2(20) path './name', 
                             STATES xmltype path './states') X,
            xmltable('/states/state/name' passing X.STATES 
                    columns STATENAME varchar2(20) path '.') (+) Y

Poiché hai più stati, dovresti unirti a un'altra tabella xml. Poiché alcuni paesi non hanno stati, deve essere un'unione esterna di sinistra. Sto usando il vecchio metodo di (+) dato che lo sto provando su 10g e sembra che ci sia un problema usando left outer join in 10g ma a quanto pare dovrebbe andare bene in 11g .