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

XML Oracle:Multiple Child Node-ekstrakt

Du kan opnå det ønskede resultat ved at bruge XMLTable() funktion:

select q.Lastname
     , q.Numberid
     , s.codeid
     , w.LoginId
     , q.address
  from t1 t
  left join xmltable('/begin/entry'
                      passing t.xml_col 
                      columns LastName   varchar2(21)  path 'lastname',
                              NumberId   number        path 'NumberList/number',
                              Address    varchar2(201) path 'address/addresslist',
                              CodeList   XmlType       Path 'NumberList/codelist/code',
                              Logins     XmlType       Path 'NumberList/login/user'
                      ) q
    on (1=1) 
  left join xmltable('/code'
                      passing q.CodeList
                      columns CodeId number path '.') s
    on (1=1)
  left join   xmltable('/user'
                        passing q.Logins
                        columns LoginId varchar2(11) path '.') w
    on (1=1)

Resultat:SQLFiddle Demo

Lastname Numberid Codeid Loginid Address 
---------------------------------------------------------------------------
gordon   100      213    user1   Jl. jalan pelan-pelan ke Bekasi, Indonesia 
gordon   100      213    user2   Jl. jalan pelan-pelan ke Bekasi, Indonesia 
gordon   100      214    user1   Jl. jalan pelan-pelan ke Bekasi, Indonesia 
gordon   100      214    user2   Jl. jalan pelan-pelan ke Bekasi, Indonesia 
mark     null     null   null    Jl. jalan cepet-cepet ke Jakarta, Indonesia 

Få mere at vide om XMLTable() funktion.

Bemærk :Når du arbejder med Oracle-udgivelser før 11.2.0.2, kan du støde på ORA-1780 error (fejl 8545377) på visse typer XML-forespørgsler, når cursor_sharing parameter er indstillet til FORCE eller SIMILAR (udfaset fra 11.2). Indstilling af cursor_sharing parameter til EXACT (standardværdi), vil løse problemet.




  1. Sådan bruger du den samme værdi flere gange i jdbc postgresql forberedt erklæring

  2. Brug af MariaDB Flashback på en MySQL-server

  3. Rediger tabelrækker/registreringer i SQL Server Management Studio ( SSMS) - SQL Server vejledning / TSQL vejledning del 18

  4. SQL Server og Oracle, hvilken er bedst med hensyn til skalerbarhed?