Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

XML Oracle:Ekstrak Multiple Child Node

Anda dapat mencapai hasil yang diinginkan dengan menggunakan XMLTable() fungsi:

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)

Hasil:Demo SQLFiddle

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 

Cari tahu lebih lanjut tentang XMLTable() fungsi.

Catatan :Bekerja dengan rilis Oracle sebelum 11.2.0.2, Anda dapat menemukan ORA-1780 error (bug 8545377) pada jenis kueri XML tertentu saat cursor_sharing parameter diatur ke FORCE atau SIMILAR (tidak digunakan lagi mulai dari 11.2). Menyetel cursor_sharing parameter ke EXACT (nilai default), akan menyelesaikan masalah.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle (ORA-02270):tidak ada kunci unik atau kunci utama yang cocok untuk kesalahan daftar kolom ini

  2. Cara Mengekspor Hasil Kueri ke File CSV di SQLcl (Oracle)

  3. Menjatuhkan pengguna yang terhubung dari skema database Oracle 10g

  4. Hasilkan Urutan tanggal dan waktu

  5. Apakah ada perbedaan antara !=dan <> di Oracle Sql?