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

XML-tabel med Oracle 11g

Prøv dette:

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

Fordi du har flere tilstande, bør du slutte dig til en anden xml-tabel. Da nogle lande ikke har nogen stater, skal det være en venstre ydre sammenslutning. Jeg bruger den gamle metode (+) da jeg prøver dette på 10g, og det ser ud til, at der er et problem med at bruge left outer join i 10g, men tilsyneladende skulle det være fint i 11g .




  1. Forbedring af medianløsningen for rækkenummerering

  2. Hvad betyder %Type i Oracle sql?

  3. Null Pointer Undtagelse ved kald af getReadableDatabase()

  4. Transform ODBC-data i CloverDX