Loading

Erreur "Error converting data type varchar to float" lors de la création d'un extrait d'une source de données SQL Server

Date de publication: Aug 24, 2022
Description
Lorsque vous tentez d'extraire une source de données SQL Server, l'une des erreurs suivantes peut se produire :
  • Une erreur s'est produite lors de la communication avec la source de données <nom de la source de données>.
    Erreur au niveau de la base de données SQL Server 0x80040E07 : Erreur de conversion du type de données de varchar en float.
  • [Microsoft][SQL Server Native Client 11.0][SQL Server] Erreur de conversion du type de données de varchar en float.
    Impossible de créer un extrait

Cause

Cette erreur se produit parce que SQL Server ne peut pas convertir les valeurs de chaîne en une valeur numérique si la chaîne contient l'un des éléments suivants :
  • Symbole de devise tel que $, £ ou ¥. Par exemple, « $123 ».
  • Virgules. Par exemple, « 100,000 ».
  • Un seul caractère de : symbole de devise, virgule (,), point décimal (.), signe plus (+) ou signe moins (-). Par exemple, « $ ».
  • Plus d'un point. Par exemple, « 1.1.0 ».
  • Des signes plus (+) ou moins (-) incorrectement positionnés. Par exemple, « 2- ».
Résolution
Utilisez l'une des options suivantes, en fonction de vos données :
  • Créez un champ calculé pour supprimer les symboles de devise et les virgules de vos données avant la conversion.
  • Veillez à ce que les caractères tels que le signe plus (+), le signe moins (-) et le point décimal (.) soient positionné dans un format de nombre valide. Par exemple, les signes plus et moins peuvent uniquement être utilisés à la gauche d'un nombre (par exemple, -2). 
  • Si vos valeurs de données de chaîne sont une devise, vous pouvez utiliser rawSQL pour transformer la chaîne en un type de données MONEY SQL Server avant de la transformer en un nombre. Par exemple :
RAWSQL_REAL("CASE WHEN ISNUMERIC(%1) = 1 THEN CAST(CAST(%1 AS MONEY) AS FLOAT) END", [<Your_String_Field>])
Numéro d’article de la base de connaissances

001498347

 
Chargement
Salesforce Help | Article