J'envoie plusieurs éléments de données différents à une procédure stockée dans une variable XML. La signature de la fonction va quelque chose comme ceci:SQL: Comment sélectionner un élément XML dans une variable plus grande de type XML?
CREATE PROCEDURE MyProc
@id INT,
@xml xml
AS
BEGIN
....
END
et XML ressemble un peu à ceci:
<Root>
<SampleTime>2009-02-05 13:25:43</SampleTime>
<Gizmo1>
<Voltage>34.1</Voltage>
<Temperature>78.3</Temperature>
</Gizmo1>
<Gizmo2>
<Weight>235</Weight>
<Exposure>North</Exposure>
</Gizmo2>
</Root>
où les différents GizmoX contiennent des informations sans rapport. Quand je veux extraire un seul champ à partir du XML, j'ai eu assez bonne chance avec SELECT DE xml.Nodes(), comme dans
SELECT T.item.value('Voltage[1]', 'float') as Voltage
FROM @xml.nodes('//Root/Gizmo1') T(item)
Maintenant, le problème est que j'ai que je veux extraire le élément Gizmo entier dans une autre variable xml. La fonction values () n'accepte pas le type de données 'xml', et je ne sais pas quoi choisir quand même.
Quelqu'un at-il une solution pour cela?
Doh! Je vous remercie! –