sql >> Database teknologi >  >> RDS >> Mysql

Kan ikke forespørge XML-fil med OPENXML i SQL

Der er flere fejl:

  • FROM OPENXML er forældet og bør ikke bruges mere (der findes sjældne undtagelser)

  • din XML inkluderede et standardnavneområde, som skal erklæres

  • din XPath er forkert:/Return/ReturnData/IRS990ScheduleHIRS990ScheduleH/ skal være /Return/ReturnData/IRS990ScheduleH/

Men alligevel bør du vende dig til moderne XQuery metoder. Prøv det sådan her:

--Dette vil læse XML til en erklæret variabel.

--opmærksomhed Din XML er deklareret med utf-8 , kan dette føre til problemer med specialtegn...

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

--Dette er forespørgslen. Angiv først navneområdet/navnene, og brug derefter .nodes() og .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. Hvor sund er din SQL-server? Proaktiv databaseovervågning er kritisk

  2. Filtrerede indekser og tvungen parametrering (redux)

  3. TSQL - Er det muligt at definere sorteringsrækkefølgen?

  4. Kan ikke implementere til Heroku, fordi serveren nægtede forbindelsen