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

SQL में OPENXML के साथ XML फ़ाइल को क्वेरी करने में असमर्थ

कई खामियां हैं:

  • OPENXML से पुराना है और अब इसका उपयोग नहीं किया जाना चाहिए (दुर्लभ अपवाद मौजूद हैं)

  • आपके एक्सएमएल में एक डिफ़ॉल्ट नेमस्पेस शामिल है, जिसे घोषित किया जाना चाहिए

  • आपका XPath गलत है:/Return/ReturnData/IRS990ScheduleHIRS990ScheduleH/ /Return/ReturnData/IRS990ScheduleH/ . होना चाहिए

लेकिन फिर भी आपको आधुनिक XQuery की ओर रुख करना चाहिए तरीके। इसे इस तरह आजमाएं:

--यह XML को एक घोषित चर में पढ़ेगा।

--ध्यान दें आपका एक्सएमएल utf-8 . के साथ घोषित किया गया है , इससे विशेष पात्रों के साथ समस्याएँ हो सकती हैं...

DECLARE @x xml
SELECT @x = R
FROM OPENROWSET (BULK 'C:\Users\USER\990\Example.xml', SINGLE_BLOB) AS ReturnData(R);

--यह क्वेरी है, पहले .nodes() . का उपयोग करने के बजाय नेमस्पेस घोषित करें और .value() :

WITH XMLNAMESPACES(DEFAULT 'http://www.irs.gov/efile'
                          ,'http://www.w3.org/2001/XMLSchema-instance' AS xsi)
SELECT ct.value('(FinancialAssistancePolicyInd)[1]','int') AS FinancialAssistancePolicyInd
      ,ct.value('(FPGReferenceDiscountedCareInd)[1]','int') AS FPGReferenceDiscountedCareInd
      ,ct.value('(FinancialAssistanceAtCostTyp/PersonsServedCnt)[1]','int') AS PersonsServedCnt
      ,ct.value('(FinancialAssistanceAtCostTyp/NetCommunityBenefitExpnsAmt)[1]','int') AS NetCommunityBenefitExpnsAmt
FROM @x.nodes('/Return/ReturnData/IRS990ScheduleH') AS A(ct)



  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. असफल प्रविष्टियों पर MySQL ऑटोइनक्रिकमेंट क्यों बढ़ता है?

  3. डेटाबेस प्राथमिक कुंजी पूर्णांक होना चाहिए?

  4. एक ही डेटाबेस में किसी अन्य तालिका से डेटा के साथ एक तालिका को पॉप्युलेट करने की आवश्यकता है

  5. क्लोन MySQL डेटाबेस