9421: XML parsing: illegal xml character (analyse XML : caractère XML illégal)
SQL ServerQue signifie cette erreur ?
SQL Server a rencontré un caractère non autorisé (invalide) lors de l'analyse d'un texte en XML. La conversion vers le type XML ou l'affectation à une colonne/variable XML a échoué à cause de ce caractère.
Cause
Caractères de contrôle interdits en XML 1.0 (par ex. certains caractères de la plage 0x00-0x1F), mauvais encodage (encoding mismatch), ou données corrompues/non nettoyées provenant d'une autre source. Apparaît généralement lors d'un CAST(... AS XML) ou d'un INSERT dans une colonne XML.
Comment la corriger
Supprimez les caractères invalides du texte avant de le convertir en XML. Rendez l'encodage source (UTF-8/UTF-16) compatible avec la cible ; déclarez le bon encodage dans la déclaration XML. Supprimez les caractères de contrôle avec REPLACE/NCHAR, ou générez et validez le XML avec une bibliothèque standard dans la couche applicative. Si vous devez stocker le texte brut, envisagez NVARCHAR(MAX).
Autres entrées pour ce moteur
- 3729Cannot DROP because it is being referenced by object (DROP impossible : l'objet est référencé par un autre objet)
- 3961Snapshot isolation transaction failed because the object was modified by a DDL statement (échec de la transaction en snapshot isolation : objet modifié par une instruction DDL)
- 1785Introducing FOREIGN KEY constraint may cause cycles or multiple cascade paths (la contrainte FOREIGN KEY peut créer des cycles ou plusieurs chemins de cascade)
- 15151Cannot find the object/principal because it does not exist or you do not have permission (objet/principal introuvable : inexistant ou droits insuffisants)
- 4834You do not have permission to use the bulk load statement (vous n'avez pas le droit d'utiliser l'instruction de chargement en masse)
- 10928Resource limit for the database has been reached (Azure SQL) (limite de ressources de la base atteinte)
- 40544The database has reached its size quota (Azure SQL) (la base a atteint son quota de taille)