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

XML से Oracle PL/SQL वातावरण में पथों की सूची तक

आप XMLTable का उपयोग कर सकते हैं XQuery के साथ पथों की सूची तैयार करने के लिए।

उदा.

(SQLFiddle )

with params as (
  select 
    xmltype('
      <ALFA>
        <BETA>0123</BETA>
        <GAMMA>2345</GAMMA>
        <DELTA>
           <EPSILON>3</EPSILON>
        </DELTA>
      </ALFA>
    ') p_xml
  from dual  
)    
select
  path_name || '/text()'
from
  XMLTable(
    '
      for $i in $doc/descendant-or-self::*
        return <element_path> {$i/string-join(ancestor-or-self::*/name(.), ''/'')} </element_path>
    '
    passing (select p_xml from params) as "doc"
    columns path_name varchar2(4000) path '//element_path'
  )

लेकिन कम से कम यह गलत तरीका है क्योंकि यह उतना प्रभावी नहीं है जितना हो सकता है।

बस एक ही XQuery के साथ सभी मान निकालें:(SQLFiddle )

with params as (
  select 
    xmltype('
      <ALFA>
        <BETA>0123</BETA>
        <GAMMA>2345</GAMMA>
        <DELTA>
           <EPSILON>3</EPSILON>
        </DELTA>
      </ALFA>
    ') p_xml
  from dual  
)    
select
  element_path, element_text
from
  XMLTable(
    '              
      for $i in $doc/descendant-or-self::*
        return <element>
                 <element_path> {$i/string-join(ancestor-or-self::*/name(.), ''/'')} </element_path>
                 <element_content> {$i/text()}</element_content>
               </element>  
    '
    passing (select p_xml from params) as "doc"
    columns 
      element_path   varchar2(4000) path '//element_path',
      element_text   varchar2(4000) path '//element_content'
  )



  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 का उपयोग करके हाइबरनेट में अंतिम सम्मिलित पंक्ति की आईडी पुनर्प्राप्त नहीं कर सकता

  2. पीएल/एसक्यूएल में स्ट्रिंग में अलग-अलग वर्णों की गिनती और नाम कैसे खोजें?

  3. Oracle - कई मानों के साथ प्रयोग करते समय क्लॉज प्रश्न में, इसे गतिशील बनाते हुए

  4. Oracle में सम्मिलित करना और उत्पन्न अनुक्रम ID को पुनः प्राप्त करना

  5. अन्य कॉलम कैसे प्राप्त करें एक ऑरैकल चयन एसक्यूएल में ग्रुप बाय क्लॉज में नहीं हैं?