2011-01-06 1 views
0

Я пытаюсь выполнить базовый запрос против некоторого XML в XML-типизированном поле SQL Server 2008.Ошибка синтаксиса для знака @ в XQuery

select OrderId, ProfileXML.query('/IntegrationMessage 
            /Registrant 
             [EktronUsername 
             = [email protected]]') from OrderDetails 

Если я выполнить запрос выше, я получаю сообщение об ошибке:

ошибка синтаксиса около '@', ожидаемый ']'

Мне нужно, чтобы избежать моей ли @ знак для адреса электронной почты? Я попытался использовать «@@» в адресе электронной почты, но это, похоже, не помогло вообще.

Благодаря

+0

двойные кавычки сделали это, спасибо marc_s! Можете ли вы, пожалуйста, передать свое предложение в качестве ответа, чтобы я мог отметить его как ответ? – ewitkows

+0

Готово - вы получили свой ответ! :-) –

ответ

1

Я хотел бы попробовать поставить двойные кавычки вокруг значения в XPath:

'/IntegrationMessage/Registrant[EktronUsername="[email protected]"]') 
               *    * 

Таким образом, содержание не будет истолковано как угодно, но простое значение.

+2

+1 Правильный ответ. Объяснение: литеральные строки должны быть заключены в кавычки. В противном случае синтаксический анализатор XPath начал бы анализировать выражение до тех пор, пока не обнаружил, что '@' не может быть частью QName –