Loading

Fehler "Error converting data type varchar to float” beim Erstellen eines Extrakts der SQL Server-Datenquelle

Veröffentlichungsdatum: Aug 24, 2022
Beschreibung
Wenn Sie versuchen, eine SQL-Datenquelle zu extrahieren, kann einer der folgenden Fehler auftreten:
  • An error occurred while communicating with data source <Data Source Name>. (Beim Kommunizieren mit der Datenquelle <Name der Datenquelle> ist ein Fehler aufgetreten.)
    SQL Server database error 0x80040E07: Error converting data type varchar to float. ( SQL Server-Datenbank-Fehler 0x80040E07: Fehler beim Konvertieren des varchar-Datentyps in float.)
  • [Microsoft][SQL Server Native Client 11.0][SQL Server] Error converting data type varchar to float ([Microsoft][SQL Server Native Client 11.0][SQL Server] Fehler beim Konvertieren des varchar-Datentyps in float)
    Unable to create extract (Extrakt kann nicht erstellt werden)

Cause

Dieser Fehler tritt auf, da SQL Server Zeichenfolgen nicht in einen numerischen Wert konvertieren kann, wenn die Zeichenfolge Folgendes enthält:
  • Währungssymbole wie $, £ oder ¥. Beispielsweise "$123".
  • Kommas. Beispielsweise "100,000".
  • Ein einzelnes der folgenden Zeichen: Währungssymbol, Komma (,), Punkt (.), Pluszeichen (+) oder Minuszeichen (-). Beispielsweise "$".
  • Mehrere Punkte. Beispielsweise "1.1.0".
  • Falsch platzierte Pluszeichen (+) oder Minuszeichen (-). Beispielsweise "2-".
Lösung
Lösen Sie das Problem mit einer der folgenden Optionen (je nach den Daten):
  • Erstellen Sie ein berechnetes Feld, um Währungssymbole und Kommas aus den Daten zu entfernen, bevor Sie diese konvertieren.
  • Stellen Sie sicher, dass Zeichen wie Plus (+), Minus (-) und Punkt (.) sich an einer gültigen Position für das Zahlenformat befinden. Beispielsweise können Plus- und Minuszeichen nur links neben einer Zahl (beispielsweise -2) verwendet werden. 
  • Wenn es sich bei Ihren Zeichenfolgedaten um eine Währung handelt, können Sie diese mit rawSQL in den SQL Server-Datentyp MONEY umwandeln, bevor Sie sie in eine Zahl konvertieren. Beispiel:
RAWSQL_REAL("CASE WHEN ISNUMERIC(%1) = 1 THEN CAST(CAST(%1 AS MONEY) AS FLOAT) END", [<Your_String_Field>])
Nummer des Knowledge-Artikels

001498347

 
Laden
Salesforce Help | Article