Ошибка в использовании типа данных XML - PullRequest
0 голосов
/ 26 июля 2011
declare @x xml
set @x = '<Root>
          <row id="1"><name>Larry</name><oflw>some text</oflw></row>
          <row id = "2"><name>moe</name></row>
          <row id = "3"/>
          </Root>'
 select T.c.query(..) as result from @x.nodes('/Root/row') T(C)

select T.c.query(..) as result from @x.nodes('/Root/row') T(C)

Я получаю следующую ошибку.

Msg 102, Level 15, State 1, Line 1
Incorrect syntax near ')'.

Может кто-нибудь помочь мне исправить ошибку.Я новичок в sql.

Ответы [ 2 ]

1 голос
/ 26 июля 2011

Стоит так:

select T.c.query('..') as result from @x.nodes('/Root/row') T(C)

или, может быть,

select T.c.query('.') as result from @x.nodes('/Root/row') T(C)

Параметр пути к методу query должен быть строкой

0 голосов
/ 26 июля 2011

Не уверен что вы пытаетесь извлечь из вашего XML - но попробуйте этот запрос - он "разберет" все биты информации, хранящейся в XML, и покажет их как отдельные значения:

declare @x xml
set @x = '<Root>
          <row id="1"><name>Larry</name><oflw>some text</oflw></row>
          <row id="2"><name>moe</name></row>
          <row id="3"/>
          </Root>'

select 
    T.c.value('@id', 'int') as 'ID', 
    T.c.value('(name)[1]', 'varchar(25)') as result,
    T.c.value('(oflw)[1]', 'varchar(25)') as 'OFlw'
from @x.nodes('/Root/row') T(C)

Выход:

ID  result  OFlw
1   Larry   some text
2   moe     NULL
3   NULL    NULL
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...