2009-09-21 5 views
0

XML 변수의 저장 프로 시저에 여러 개의 다른 데이터 항목을 보내고 있습니다.SQL : XML 형식의 큰 변수 내에서 XML 요소를 선택하려면 어떻게해야합니까?

CREATE PROCEDURE MyProc 
    @id INT, 
    @xml xml 
AS 
BEGIN 
.... 
END 

을하고, XML은 다음과 같이 다소 같습니다 : 함수의 서명은 이런 식 다른 GizmoX는 관련이없는 정보를 포함

<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> 

합니다. 나는 XML에서 하나의 필드를 추출 할 때 , 나는

SELECT T.item.value('Voltage[1]', 'float') as Voltage 
FROM @xml.nodes('//Root/Gizmo1') T(item) 

같이 xml.Nodes()에서 선택 꽤 행운을 했어 지금 내가 가지고있는 문제는이를 추출 할 것입니다 전체 Gizmo 요소를 다른 xml 변수로 가져옵니다. values ​​() 함수는 'xml'데이터 유형을 허용하지 않으므로 어쨌든 무엇을 선택해야할지 모르겠다.

누구에게도 해결책이 있습니까?

답변

1

사용 XQuery :

select @xml.query('//Root/Gizmo1') 
+0

도현! 고맙습니다! –

관련 문제