Hey hallo,
Ik heb een probleempje met MSSQL's geniale OPENXML clause. Ik zet er een XML bestand in waarin een bepaalde element meerdere keren mag voorkomen, maar waarvan de waarden uiteraard in verschillende velden moet komen te staan.
Hier dan het XML-bestand ter illustratrie:
En van de query die ik gebruik, zou je verwachten dat is zo goed is (gegeven dat @hDoc al de handle naar de XML file bevat):
Het probleem: ik krijg nu een tabel terug met in de velden veld1, veld2 en veld3 de waarde van het eerste element, terwijl je dat niet zou verwachten.
De vraag: hoe kan ik de waarden van deze drie velden met de openxml clause (of met een andere eenvoudige manier) toch in de juiste velden in de teruggegeven tabel krijgen?
Ik heb al geprobeerd om een temp tabel te maken en handmatig alle gelijke elementen uit te pluizen, maar handig is het niet en ook zeker niet snel
Ik heb een probleempje met MSSQL's geniale OPENXML clause. Ik zet er een XML bestand in waarin een bepaalde element meerdere keren mag voorkomen, maar waarvan de waarden uiteraard in verschillende velden moet komen te staan.
Hier dan het XML-bestand ter illustratrie:
code:
1
2
3
4
5
6
| <?xml version="1.0"?> <hoofdelement> <element>test1</element> <element>test2</element> <element>test3</element> </hoofdelement> |
En van de query die ik gebruik, zou je verwachten dat is zo goed is (gegeven dat @hDoc al de handle naar de XML file bevat):
code:
1
2
3
4
5
6
| SELECT * FROM OPENXML(@hDoc, '/hoofdelement') WITH ( veld1 varchar(20) 'element', veld2 varchar(20) 'element', veld3 varchar(20) 'element' ) |
Het probleem: ik krijg nu een tabel terug met in de velden veld1, veld2 en veld3 de waarde van het eerste element, terwijl je dat niet zou verwachten.
De vraag: hoe kan ik de waarden van deze drie velden met de openxml clause (of met een andere eenvoudige manier) toch in de juiste velden in de teruggegeven tabel krijgen?
Ik heb al geprobeerd om een temp tabel te maken en handmatig alle gelijke elementen uit te pluizen, maar handig is het niet en ook zeker niet snel
日本!🎌