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

उदाहरण के साथ Oracle में SOAP XML को पार्स करें

आप XMLQUERY . के साथ नोड सामग्री निकाल सकते हैं :

select xmlquery('declare namespace soapenv = "http://schemas.xmlsoap.org/soap/envelope/";
      declare namespace urn = "urn:ABC";
      /soapenv:Envelope/soapenv:Body/urn:settleResponse/settleReturn/message/text()'
    passing XMLType(message)
    returning content) as message,
  xmlquery('declare namespace soapenv = "http://schemas.xmlsoap.org/soap/envelope/";
      declare namespace urn = "urn:ABC";
      /soapenv:Envelope/soapenv:Body/urn:settleResponse/settleReturn/errorCode/text()'
    passing XMLType(message)
    returning content) as errorCode,
  xmlquery('declare namespace soapenv = "http://schemas.xmlsoap.org/soap/envelope/";
      declare namespace urn = "urn:ABC";
      /soapenv:Envelope/soapenv:Body/urn:settleResponse/settleReturn/status/text()'
    passing XMLType(message)
    returning content) as status
from external;

MESSAGE              ERRORCODE            STATUS   
-------------------- -------------------- ----------
Missing first name   INVALID_ACC          Failed

या शायद अधिक सरलता से, खासकर यदि आपके पास संभालने के लिए कई संदेश हैं, XMLTABLE . के साथ :

select x.*
from external ext
cross join xmltable(
  xmlnamespaces('http://schemas.xmlsoap.org/soap/envelope/' as  "soapenv",
    'urn:ABC' as "urn"),
  '/soapenv:Envelope/soapenv:Body/urn:settleResponse/settleReturn'
  passing XMLType(ext.message)
  columns message varchar2(20) path 'message',
    errorCode varchar2(20) path 'errorCode',
    status varchar2(10) path 'status'
) x;

MESSAGE              ERRORCODE            STATUS   
-------------------- -------------------- ----------
Missing first name   INVALID_ACC          Failed    

दोनों ही मामलों में आपको नेमस्पेस निर्दिष्ट करने की आवश्यकता है, और सिंटैक्स अलग है। इन कार्यों का उपयोग करने के बारे में और पढ़ें

आप उन्हें सीधे किसी अन्य तालिका में सम्मिलित कर सकते हैं insert into some_table (x, y, z) select ...




  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. SELECT INTO Statment में नंबर की तालिका का उपयोग कैसे करें

  3. Weblogic 10.3.6 . के लिए Java Persistence 2.0 को कैसे इनेबल करें

  4. पंक्ति की प्रतिलिपि बनाएँ और स्तंभों का एक छोटा उपसमूह बदलें?

  5. छँटाई के साथ पुनरावर्ती सबक्वेरी