Varchar-zu-Dezimal-Konvertierung im db2

Ich versuche zu konvertieren varchar Feld decimal Feld in db2 aber ich erhalte eine Fehlermeldung

AMOUNT Feld ist ein varchar Feld aus, das konvertiert werden muss, um decimal(31,3)

Da unten ist meine Abfrage

SELECT CAST(ROUND(TRIM(AMOUNT),3) AS DECIMAL(31,3))
FROM TABLENAME

Hinweis: AMOUNT field (varchar) hat eine NULL - Wert sowie

Beispiel-Werte:

7.324088  
-42.97209  
854  
NULL  
6  
6  
350  
-6  
15.380584  
1900

Bekomme ich die folgende Fehlermeldung:

Ungültiges Zeichen gefunden in einer Zeichenfolge-argument der Funktion
"DECFLOAT". SQLSTATE=22018

Die Tatsache, dass es sagt: DECFLOAT (im Gegensatz zu DECIMAL) zeigt an, dass ROUND(...) ist, was balking. Das ist eine Gleitkommazahl (hat einen Verschiebebereich), obwohl, weil es dezimal-basiert kann es tatsächlich zu speichern Dinge wie .1 - ist das okay? Versuchen Sie herauszufinden, welche Art von Wert ist tatsächlich wirft dieser Fehler. Sie haben alpha-Zeichen in dieser Spalte? Ein Weg, um zu versuchen, dies zu tun, eine geordnete INSERT in eine andere Tabelle (ohne Transaktionen/ROLLBACK), dann die lookup-Wert nach dem letzten eingefügt.

InformationsquelleAutor Rikin | 2014-04-22

Schreibe einen Kommentar