Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

पिवट xml के बाद तालिका में xmltype पार्स करें

आप इस XPath व्यंजक से देश का मान प्राप्त कर सकते हैं:

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

और आबादी के लिए एक समान। देना:

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     

लेकिन यदि आप प्रत्येक देश के लिए एक कॉलम चाहते हैं, तो यहां से आपको अभी भी pivot . की आवश्यकता होगी परिणाम प्राप्त करने के लिए डेटा!

जो सवाल पूछता है:

XML पिवट का उपयोग क्यों करें?

अगर ऐसा इसलिए है क्योंकि आप देश के नाम नहीं जानते हैं और कुछ ऐसा कर रहे हैं:

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

इसने आपको कुछ भी नहीं बचाया है! आउटपुट को कॉलम के रूप में प्राप्त करने के लिए आपको अभी भी देश के नाम जानने की जरूरत है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डीबी लिंक के साथ जावा क्वेरी डीबी लिंक कनेक्शन बंद नहीं करती है

  2. Oracle में प्राथमिक कुंजी वाली डुप्लिकेट पंक्तियों को हटाने के 6 तरीके

  3. ओरा-06575 के कारण होने वाली त्रुटि का पता कैसे लगाएं?

  4. उस पंक्ति को प्राप्त करें जिसमें कॉलम के लिए अधिकतम मान है

  5. किस स्थिति में केस स्टेटमेंट का उपयोग कैसे करें?