sql >> Databáze >  >> RDS >> Oracle

XMLtable s Oracle 11g

Zkuste toto:

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

Protože máte více stavů, měli byste se připojit k jiné xml tabulce. Protože některé země nemají žádné státy, musí to být levý vnější spoj. Používám starou metodu (+) když to zkouším na 10g a zdá se, že je problém s použitím left outer join v 10g, ale zřejmě by to mělo být v pořádku v 11g .




  1. Jak zkombinuji data ze dvou samostatných tabulek do jednoho kurzoru?

  2. SQL EXISTS Operátor pro začátečníky

  3. Využití mezipaměti contrib's pg_prewarm a pg_hibernator v PostgreSQL 9.4.

  4. PHP MySQLI Zabránit SQL Injection