2011-05-10 5 views
0

행 집합이 요소의 내용을 반환하도록 쿼리를 실행하려고합니다. 아래는 내 쿼리 및 XML 열의 데이터 샘플입니다. Address에서 반환되는 것은 모두 NULL입니다. 그러나 테이블에있는 해당 요소에 데이터가 있다는 것을 알고 있습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까.SQL Server XML 데이터 열에서 특정 데이터를 추출하는 쿼리 작성

WITH XMLNAMESPACES('http://schemas.xmlsoap.org/soap' AS "soap") 

SELECT 
Data.value('(/soap:Envelope/soap:Body/Report/Location/Address/node())[1]', 'nvarchar(max)') as Address 
FROM Mytable 

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
     <soap:Body> 
     <Report> 
      <Location> 
      <Address>600 BENNETT ST</Address> 
      </Location> 
     </Report> 
     <soap:Body> 
<soap:Envelope> 

답변

0

잘못된 XML 네임 스페이스가있는 것 같습니다. .../envelope이 없습니다. 또한 XQuery에서 XML 네임 스페이스 별칭으로 "비누"를 사용할 수없는 것 같습니다. 이유는 확실하지 않습니다.

이 시도 : 내 테스트 경우

;WITH XMLNAMESPACES('http://schemas.xmlsoap.org/soap/envelope/' AS se) 
SELECT 
    Data.value('(/se:Envelope/se:Body/Report/Location/Address/text())[1]', 'nvarchar(max)') 
    AS 'Address' 
FROM Mytable 

,이 일 것으로 보인다 이런 식으로.

관련 문제