SQL Server XQuery не работает с .nodes () - PullRequest
1 голос
/ 04 февраля 2011

С учетом следующего документа XML, хранящегося в столбце XML с именем OfficerXML:

<Officers xmlns="urn:reuterscompanycontent:officersdirectors03" Major="3" Minor="0" Revision="2" lang="en-US">
  <RepNo>0004N</RepNo>
  <CompanyName Type="Primary">Alpharma Inc.</CompanyName>
</Officers>

Почему следующие строки возвращают 0 строк?

SELECT tbl.col.value(N'(./CompanyName)[1]',N'nvarchar(4000)') 
FROM dbo.RawData rd
CROSS APPLY OfficersXML.nodes(N'/Officers') tbl(col)

1 Ответ

0 голосов
/ 04 февраля 2011

Попробуйте

SELECT tbl.col.value(N'(*:CompanyName)[1]',N'nvarchar(4000)') 
FROM dbo.RawData rd
CROSS APPLY OfficersXML.nodes(N'/*:Officers') tbl(col)

Вы также можете использовать пространство имен с установленным по умолчанию пространством имен: С XMLNAMESPACES (DEFAULT 'urn: reuterscompanycontent: должностные лицаdirectors03')

Подробнее: http://msdn.microsoft.com/en-us/library/ms177607.aspx

...