sql >> Databasteknik >  >> RDS >> Oracle

XML-tabell med Oracle 11g

Prova detta:

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

Eftersom du har flera tillstånd bör du gå med i en annan xml-tabell. Eftersom vissa länder inte har några stater måste det vara en vänster yttre sammanslutning. Jag använder den gamla metoden (+) eftersom jag provar detta på 10g och det verkar vara ett problem att använda left outer join i 10g men tydligen borde det vara bra i 11g .




  1. Tips för läs-/skrivlås beroende på transaktionsisoleringsnivå i MSSQL

  2. Sortering i SQL Server

  3. Hitta ett värde var som helst i en databas

  4. postgres db-filer - vilken fil representerar den specifika tabellen/indexet?