sql >> Base de Datos >  >> RDS >> Oracle

Tabla XML con Oracle 11g

Prueba esto:

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

Debido a que tiene varios estados, debe unirse a otra tabla xml. Como algunos países no tienen estados, debe ser una unión externa izquierda. Estoy usando el antiguo método de (+) ya que estoy intentando esto en 10g y parece que hay un problema al usar left outer join en 10g pero aparentemente debería estar bien en 11g .