Dzień dobry,
jestem na początku drogi z programowaniem SQL i natrafiłem na problem, z którym borykam się od dłuższego czasu.
Mam plik XML (poniżej jego treść), z którego chcę odczytać dane z użyciem SQL.
Testowo chciałbym odczytać np atrybut EORI z węzła "/IE529/Zwolnienie/Nadawca". Niestety co bym nie zrobił otrzymuje pustą wartość.
Czy może ktoś podpowiedzieć, co robię nie tak?
Dodam tylko że plik xml zmodyfikowałem ręcznie (dane) na potrzeby umieszczenia go w przestrzeni publicznej
Poniżej kod którym chcę odczytać dane z przesłanego pliku, a wynik mam "pusty":
DECLARE @xmldata XML
SELECT @xmldata=BulkColumn FROM OPENROWSET (BULK 'C:\test1.xml',SINGLE_BLOB) as T1
DECLARE @docHandle int
EXEC sp_xml_preparedocument @docHandle OUTPUT, @xmldata
SELECT * FROM OPENXML(@docHandle, '/IE529/Zwolnienie/Nadawca', 1)
WITH
(
EORI VARCHAR(20)
)
EXEC sp_xml_removedocument @docHandle
GO
Inne przykłady znalezione w sieci mi działają, natomiast z tym konkretnym typem plików mam ogromny problem.
Będę wdzięczny za pomoc.
EDIT: Zawartość pliku XML, zgodnie z Waszą sugestią, aby nie trzeba było sciągać archiwum
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<IE529 xmlns="http://www.mf.gov.pl/xsd/ECS/IE529_v1-0.xsd" EmailPodmiotu="[email protected]" NrWlasny="22IETESTNR341" PlacowkaPodmiotu="00">
<Zwolnienie CRN="CRN123" DataPrzyjecia="2022-12-29T15:38:30" DataZwolnienia="2022-12-29T15:39:06" Kontenery="0" KrajPrzeznaczenia="UK" KrajWysylki="PL" LiczbaOpakowan="1" LiczbaPozycji="1" MRN="123MRN345" MasaBrutto="1.000" NrWlasny="123Nrwlasny" OdprawaScentralizowana="0" P1a="EU" P1b="A" Tranzyt="0" UCWyprowadzenia="UC1234" UCWywozu="UW1234" drukEAD="0">
<Nadawca EORI="PL123456789" KodPocztowy="12-200" Kraj="PL" Miejscowosc="Miejscowosc xyz" Nazwa="NazwaXYZ" Regon="12343REGON" TIN="PL123456789" UlicaNumer="ul. xyzq" />
<Odbiorca KodPocztowy="03057" Kraj="UK" Miejscowosc="xyz" Nazwa="Nazwaxyz" UlicaNumer="UlicaXyz" />
<ZglaszajacyPrzedstawiciel DataWpisu="" EORI="" EmailPodmiotu="" KodPocztowy="" Kraj="" Miejscowosc="" Nazwa="" NrWpisu="" Przedstawicielstwo="" Regon="" TIN="" UlicaNumer="" />
<TransportWewnetrzny Rodzaj="" Znaki="" />
<TransportNaGranicy Kraj="" Rodzaj="" Znaki="" />
<Lokalizacja Miejsce="" />
<WarunkiDostawy Kod="" Miejsce="" MiejsceKod="" />
<Transakcja Kurs="" Rodzaj="" Waluta="" Wartosc="" />
<Towar KodTaric="" KodTowarowy="" MasaNetto="" Nr="" OpisTowaru="" ProceduraPoprzednia="" ProceduraWnioskowana="">
<Opakowanie LiczbaOpakowan="" Rodzaj="" Znaki="" />
<DokumentPoprzedni Kod="" Nr="" />
<DokumentWymagany Kod="" Nr="" PozId="" />
<DokumentWymagany Kod="" Nr="" PozId="" />
<DokumentWymagany Kod="" Nr="" PozId="" />
</Towar>
</Zwolnienie>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="id-123435"></ds:Signature>
</IE529>