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

आप ओरेकल पीएल/एसक्यूएल में एक साधारण एक्सएमएल स्निपेट को कैसे पार्स करते हैं और इसे वैश्विक अस्थायी तालिका में लोड करते हैं?

ओरेकल के एक्सएमएल डीबी कार्यान्वयन में विकल्पों की एक स्पष्ट रूप से चौंकाने वाली संख्या है, और यह हमेशा स्पष्ट नहीं होता है (कम से कम मेरे लिए) जो किसी भी परिदृश्य में लागू होता है। इस विशेष मामले में आप जो चाहते हैं वह है XMLTable() , जो XQuery को पंक्तियों के समूह में बदल देता है।

सबसे पहले हम एक टेबल बनाते हैं।

SQL> create table t23
  2      (field01 number
  3       , field02 number
  4       , field03 char(1)
  5       )
  6  /

Table created.

SQL>

फिर हम इसे आबाद करते हैं...

SQL> declare
  2      x varchar2(2000) := '<ArrayOfRecords>
  3                        <Record Field01="130" Field02="1700" Field03="C" />
  4                        <Record Field01="131" Field02="1701" Field03="C" />
  5                        <Record Field01="132" Field02="1702" Field03="C" />
  6                   </ArrayOfRecords>';
  7  begin
  8      insert into t23
  9      select *
 10      from xmltable
 11          ( '/ArrayOfRecords/Record'
 12             passing xmltype (x)
 13             columns f1 number path '@Field01'
 14                     , f2 number path '@Field02'
 15                     , f3 char(1) path '@Field03'
 16          )
 17      ;
 18  end;
 19  /

PL/SQL procedure successfully completed.

SQL>

अंत में हम साबित करते हैं कि यह काम कर गया....

SQL> select * from t23
  2  /

   FIELD01    FIELD02 F
---------- ---------- -
       130       1700 C
       131       1701 C
       132       1702 C

SQL>



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. आकाशवाणी। केस स्टेटमेंट का उपयोग करते समय गुम कीवर्ड। त्रुटि 00905

  2. Oracle ORA-12154:TNS:सेवा नाम त्रुटि का समाधान नहीं कर सका?

  3. Oracle में तालिका पंक्ति के लिए बनाया गया दिनांक-समय क्या है?

  4. Oracle OCCI ResultSet में कॉलम के लिए डेटा प्रकार की जानकारी प्राप्त करना

  5. बाहरी क्वेरी विशेषता के साथ आंतरिक क्वेरी को प्रतिबंधित करना