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

Oracle pl/sql का उपयोग करके नेमस्पेस के साथ एक्सएमएल क्लॉब से मूल्य निकालना

आपके अपडेट किए गए एक्सएमएल में नेमस्पेस है, जो अंततः इस मुद्दे को प्रकट करता है। आपको निर्दिष्ट करना होगा XML निष्कर्षण के भाग के रूप में नाम स्थान , जो XMLTable दृष्टिकोण के साथ सरल है; इस मामले में आप इसे केवल डिफ़ॉल्ट नाम स्थान के रूप में मान सकते हैं:

select itc.element_name, x.user_classification3
from i_transaction itc
cross join xmltable(
  xmlnamespaces(default 'http://xmlns.oracle.com/apps/otm'),
    '/TenderOffer/Shipment/RATE_OFFERING/RATE_OFFERING_ROW'
  passing xmltype(itc.xml_blob)
  columns user_classification3 varchar2(10) path 'USER_CLASSIFICATION3'
) x
where itc.i_transaction_no = 31553115
and rownum = 1;

ELEMENT_NA USER_CLASS
---------- ----------
dummy      ZXF       

या XMLQuery के साथ:

select itc.element_name, xmlquery(
  'declare default element namespace "http://xmlns.oracle.com/apps/otm"; (: :)
    /TenderOffer/Shipment/RATE_OFFERING/RATE_OFFERING_ROW/USER_CLASSIFICATION3/text()'
  passing xmltype(itc.xml_blob)
  returning content
) x
from i_transaction itc
where itc.i_transaction_no = 31553115
and rownum = 1;

ELEMENT_NA X                                                                               
---------- --------------------------------------------------------------------------------
dummy      ZXF                                                                             

यदि आप बहिष्कृत extractvalue() . का उपयोग जारी रखना चाहते हैं फ़ंक्शन के रूप में आप नेमस्पेस को एक तर्क के रूप में भी आपूर्ति कर सकते हैं, फिर से जैसा कि में दिखाया गया है दस्तावेज़ीकरण :

select itc.element_name,
  extractvalue(xmltype(xml_blob),
    '/TenderOffer/Shipment/RATE_OFFERING/RATE_OFFERING_ROW/USER_CLASSIFICATION3/text()',
    'xmlns="http://xmlns.oracle.com/apps/otm"')
from i_transaction itc where itc.i_transaction_no = 31553115 and rownum = 1;


  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 के साथ PlayFramework

  2. जब मैं FROM के बाद किसी तालिका का नाम बदलने का प्रयास करता हूं तो मुझे त्रुटि क्यों मिलती है?

  3. मैं एक .NET अनुप्रयोग कैसे परिनियोजित कर सकता हूँ जो उपयोगकर्ता के लिए संपूर्ण घटक स्थापित किए बिना ODAC का उपयोग करता है?

  4. एसक्यूएल सिलेक्ट सिंबल क्या करता है || अर्थ?

  5. Oracle10g SQL पिवट