Loading

Error "Error converting data type varchar to float" al crear una extracción de una fuente de datos de SQL Server

Fecha de publicación: Aug 24, 2022
Descripción
Al intentar extraer una fuente de datos de SQL Server, es posible que se produzca uno de los siguientes errores:
  • An error occurred while communicating with data source <Data Source Name>.
    SQL Server database error 0x80040E07: Error converting data type varchar to float. (Se ha producido un error al comunicarse con la fuente de datos <Data Source Name>. Error de la base de datos de SQL Server 0x80040E07: error al convertir el tipo de datos varchar a float).
  • [Microsoft][SQL Server Native Client 11.0][SQL Server] Error converting data type varchar to float 
    Unable to create extract ([Microsoft][SQL Server Native Client 11.0][SQL Server] Error al convertir tipo de datos varchar a float. No es posible crear el extracto).

Cause

Este error se produce porque SQL Server no puede convertir los valores de cadena a un valor numérico si la cadena contiene lo siguiente:
  • Símbolos de moneda, como $, £ o ¥, por ejemplo, "123 $".
  • Puntos, por ejemplo, "100.000".
  • Un carácter individual de: símbolo de moneda, punto (.), coma decimal (,), signo más (+) o signo menos (-), por ejemplo, "$".
  • Más de un punto, por ejemplo, "1.1.0".
  • Signos más (+) o menos (-) colocados de forma incorrecta, por ejemplo, "2-".
Solución
Siga una de las opciones, según sea conveniente para sus datos:
  • Cree un campo calculado para quitar los símbolos de moneda y las comas de los datos antes de convertirlos. 
  • Asegúrese de que los caracteres como los signos más (+) y menos (-) y la coma decimal (,) estén colocados en un formato de número válido. Por ejemplo, los signos más y menos solo se pueden usar a la izquierda de un número (por ejemplo, -2).
  • Si los valores de los datos de la cadena son monedas, puede usar rawSQL para convertir la cadena al tipo de datos MONEY de SQL Server antes de convertirla a un número. Por ejemplo:
RAWSQL_REAL("CASE WHEN ISNUMERIC(%1) = 1 THEN CAST(CAST(%1 AS MONEY) AS FLOAT) END", [<Your_String_Field>])
Número del artículo de conocimiento

001498347

 
Cargando
Salesforce Help | Article