2009-06-11 3 views
0

MS SQL에서 XML 필드 내의 필드를 검색하려면 어떻게해야합니까?SQL XML 쿼리에서 태그를 어떻게 선택합니까?

나는이 XML 코드를 사용할 때마다 의도 한대로 작동하지 않습니다하려고 모든 쿼리

<soap:Envelope xmlns:xsi="[URI]" xmlns:xsd="[URI]" xmlns:soap="[URI]"> 
    <soap:Body> 
    <RunPackage xmlns="[URI]"> 
     <xmlDoc> 
     <Request> 
      <SubscriberCode>76547654</SubscriberCode> 
      <CompanyCode></CompanyCode> 
     </Request> 
     </xmlDoc> 
    </RunPackage> 
    </soap:Body> 
</soap:Envelope> 

내가 처음이 태그를 참조하는 방법을 모르겠어요. 시도했습니다.

운이 없다.

답변

3

당신은 당신의 XQuery를 작업에 (이 경우 "비누", 플러스 노드에 대한 또 하나 아래 아무것도)에 XML 네임 스페이스를 선언해야합니다

SELECT 
    TransactionID, 
    T2.Loc.query('declare namespace ns="[URI1]";data(ns:Request/ns:SubscriberCode)') 
    as 'SubscriberCode' 
FROM 
    TempWorksRequest 
CROSS APPLY 
    RequestXML.nodes('declare namespace soap="[URI]"; 
        declare namespace ns="[URI1]"; 
        soap:Envelope/soap:Body/ns:RunPackage/ns:xmlDoc') as T2(Loc) 

[URI1] 요구에 정의되어 URI를 수 <RunPackage> 태그

마크

+0

정말 고마워요! 이것은 거의 축 어적으로 기능했습니다. XML 선언 태그가 누락되어 올바른 네임 스페이스 URI를 사용하고 있지 않은 것으로 나타났습니다. – KTF

+0

위대한 답변, 그것은 나를 도왔습니다. – cciotti

관련 문제