Ich verwende freebcp
, um Daten zu SQL Server zu übertragen. Es funktioniert gut, außer für numerische Werte, die am Ende auf ganze Zahlen abgeschnitten werden. Die Spalte in der Datenbank ist ein FLOAT
, so dass es Werte mit Dezimalzahlen verarbeiten kann.Freetds schreibt numerisch als Ganzzahl in die Datenbank
Befehl
freebcp MyDatabase.MySchema.MyTable in /path/to/myfile.txt -c -S MyServer -U MyUser -P MyPassword
MyTable 5 Spalten, die zunächst 2 INTEGER, die anderen sind FLOAT.
Probe von myfile.txt
19344 303634 -0.419398400743657 -1.38936409312037 0.550567291633061
19345 303634 -1.59787440264054 -2.05068741446749 -1.14506139081359
als
gespeichert19344 303634 0 -1 1
19345 303634 -2 -2 -1
Wie dieses Problem beheben?
Hinweis: Ich verwende freebcp
unter Ubuntu. Bei der Verwendung von bcp
unter Windows werden die Floating-Spalten korrekt exportiert, wobei fast dieselbe Syntax verwendet wird (ersetzen Sie einfach freebcp
durch bcp
und verwenden Sie eine Thrusted-Verbindung).
bcp MyDatabase.MySchema.MyTable in /path/to/myfile.txt -c -S MyServer -T
Der Datentyp der nicht ganzzahligen Felder ist 'FLOAT'. Ich habe meine Frage aktualisiert. – Thierry