8114: Error converting data type X to Y
SQL ServerQue signifie cette erreur ?
Une valeur n'a pas pu être convertie d'un type de données vers un autre car les types sont incompatibles. Contrairement à l'erreur 245, il s'agit généralement d'un échec de conversion de type au niveau d'un paramètre/d'une expression (par ex. varchar vers numeric).
Cause
Envoi d'un texte non numérique ou mal formé vers une colonne/un paramètre numérique ; dépassement d'échelle/de précision ; tentative de conversion d'une chaîne vide ('') en numérique ; ou passage d'un argument de mauvais type dans une requête paramétrée. Fréquent avec les conversions implicites générées par les ORM.
Comment la corriger
Vérifiez que les valeurs converties tiennent dans le type cible. Utilisez TRY_CONVERT / TRY_CAST pour une conversion sûre ; ils renvoient NULL en cas d'échec, ce qui permet de filtrer ces lignes avec WHERE. Alignez les types des paramètres sur ceux des colonnes. Parcourez les données avec ISNUMERIC/TRY_CAST pour trouver les lignes fautives, et nettoyez les chaînes vides.
Autres entrées pour ce moteur
- 40544The database has reached its size quota (Azure SQL) (la base a atteint son quota de taille)
- 40613Database is not currently available (Azure SQL) (base actuellement indisponible)
- 102Incorrect syntax near 'token'
- 1204The instance of the SQL Server Database Engine cannot obtain a LOCK resource (l'instance du moteur SQL Server ne peut pas obtenir de ressource LOCK)
- 3906Failed to update database because the database is read-only (échec de la mise à jour : la base est en lecture seule)
- 15023User already exists in the current database (l'utilisateur existe déjà dans la base courante)
- 18452Login failed. The login is from an untrusted domain and cannot be used with Windows authentication (échec de connexion : login provenant d'un domaine non approuvé, inutilisable avec l'authentification Windows)