Étrange Erreur d'analyse XML: ligne 1, le caractère 2038, illégal de caractères xml

J'ai cette requête,

DECLARE @Result XML;
SELECT @Result = (  SELECT  PD.* 
                FROM    [ProductDetailedDescriptions] PD
                        LEFT JOIN [Products] P ON (PD.ProductID= P.ID)
                WHERE   PD.ProductID = 23
                        AND P.RetailerID = 1
                        AND PD.LanguageID = 1
                ORDER BY [ORDER]
                FOR XML AUTO, ELEMENTS, ROOT('root')
            )

Ce lève XML parsing: line 1, character 2038, illegal xml character. Lorsque je sélectionne juste,

SELECT  PD.* 
FROM    [ProductDetailedDescriptions] PD
        LEFT JOIN [Products] P ON (PD.ProductID= P.ID)
WHERE   PD.ProductID = 23
        AND P.RetailerID = 1
        AND PD.LanguageID = 1
ORDER BY [ORDER]
FOR XML AUTO, ELEMENTS, ROOT('root')

Il montre le code xml suivant,

<root>
   ..............................................
   ..............................................
  <PD>
    <ID>4187</ID>
    <ProductID>23</ProductID>
    <Header>aa</Header>
    <Description>with &#x3;other</Description>
    <Order>7</Order>
    <LanguageID>1</LanguageID>
  </PD>

Note le #x3. Dans mon application, il suffit d'un espace. Est-ce un bug n SQL Server?

  • Quel est le contenu de la Description de la colonne si vous interrogez directement sans LMC conversion et qu'est-ce que le classement et le type de données de cette colonne?
  • Nvarchar(MAX). Le classement est par Défaut. I est un char invisible. Voir l'image ci-dessus.
InformationsquelleAutor user960567 | 2013-08-05