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

Parsing xmltype ke dalam tabel setelah pivot xml

Anda bisa mendapatkan nilai negara dengan ekspresi XPath ini:

/PivotSet/item/column[@name="country"]

Dan yang serupa untuk populasi. Pemberian:

with x as (
  select xmltype ( 
'<PivotSet>
<item>
        <column name = "country">Ukraine</column>
        <column name = "population">12345</column>
    </item>
    <item>
        <column name = "country">Germany</column>
        <column name = "population">67891</column>
    </item>
</PivotSet>' 
) x from dual
)
select xt.* from x, xmltable (
  '/PivotSet/item'
  passing x.x 
  columns 
    country varchar2(100) 
      path 'column[@name="country"]',
    population int
      path 'column[@name="population"]'
) xt

COUNTRY   POPULATION   
Ukraine        12345         
Germany        67891     

Tetapi jika Anda menginginkan kolom untuk setiap negara, dari sini Anda masih perlu pivot data untuk mendapatkan hasilnya!

Yang menimbulkan pertanyaan:

Mengapa menggunakan pivot XML?

Jika itu karena Anda tidak tahu nama negara dan melakukan sesuatu seperti:

pivot xml ( 
  min ( population ) 
    for country in ( any ) 
)

Ini tidak menyelamatkan Anda apa pun! Anda masih perlu mengetahui nama negara untuk mendapatkan output sebagai kolom.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perilaku aneh dari gabungan luar penuh di Oracle - bagaimana itu bisa dijelaskan?

  2. Apakah SQLDeveloper mendukung eksekusi skrip?

  3. Mengapa saya mendapatkan PLS-00302:komponen harus dideklarasikan ketika ada?

  4. Bagaimana cara mengekspor skema database di Oracle ke file dump

  5. GROUP BY dengan MAX(DATE)