2011-01-06 12 views
0

XML型のSQL Server 2008フィールドの一部のXMLに対して基本クエリを実行しようとしています。@ sign in XQueryの構文エラー

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

私は上記のクエリを実行すると、私はエラーメッセージが出ます:

近くに '@' の構文エラー、予想される ']'

私は私をエスケープする必要があります@電子メールアドレスの署名?私は電子メールアドレスで "@@"を使ってみましたが、それは全く役に立たないようです。

おかげ

+0

二重引用符を付けました。ありがとうございますmarc_s!私はそれを答えとしてマークすることができるので、答えとしてあなたのsuggesstionを再投稿できますか? – ewitkows

+0

完了 - あなたの答えがあります! :-) –

答えて

1

私は、XPathであなたの値を二重引用符を入れしようとする:

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

内容が単純な値以外のものとして解釈されることはありませんこの方法。

+2

+1正解です。説明:リテラル文字列は引用符で囲む必要があります。さもなければ、XPath式パーサーは式を解析し始め、 '@'はQNameの一部ではないことがわかります –