LOAD DATA INFILE - Textdatei in Mysql-Tabelle

LOAD DATA INFILE - Textdatei in Mysql-Tabelle

am 27.01.2006 12:15:33 von Armin Barth

Hallo,
ich habe eine Textdatei (artikelnummer bezeichnung preis), jeweils duch
Tab getrennt. Der Preis xxxx,yy ist duch Komma getrennt.
Beim Einlesen mit LOAD DATA INFILE herst1.csv INTO TABLE material.herst1
werden aber alle Nachkommastellen duch '00' ersetzt.
Was muss ich hier ändern?
Gruß
Armin

Re: LOAD DATA INFILE - Textdatei in Mysql-Tabelle

am 27.01.2006 12:29:49 von Christian Kirsch

Armin Barth schrieb:
> Hallo,
> ich habe eine Textdatei (artikelnummer bezeichnung preis), jeweils duch
> Tab getrennt. Der Preis xxxx,yy ist duch Komma getrennt.
> Beim Einlesen mit LOAD DATA INFILE herst1.csv INTO TABLE material.herst1
> werden aber alle Nachkommastellen duch '00' ersetzt.
> Was muss ich hier ändern?

Vermutlich das Zahlenformat - MySQL erwartet US-amerikanische
Floatingpoint-Zahlen, also '.' statt ','.
Vielleicht kannst Du die Daten aus Deiner Tabellenkalkulation passend
exportieren,sonst etwas wie
sed -e 's/\([0-9]\),\([0-9]\)/\1.\2/' fasel.csv

Re: LOAD DATA INFILE - Textdatei in Mysql-Tabelle

am 27.01.2006 12:29:58 von Guy Walter

Armin Barth wrote:
> Hallo,
> ich habe eine Textdatei (artikelnummer bezeichnung preis), jeweils duch
> Tab getrennt. Der Preis xxxx,yy ist duch Komma getrennt.
> Beim Einlesen mit LOAD DATA INFILE herst1.csv INTO TABLE material.herst1
> werden aber alle Nachkommastellen duch '00' ersetzt.
> Was muss ich hier ändern?
> Gruß
> Armin

reine Vermutung:

Werden nicht float Zahlen mit Punkt getrennt statt , :D

Re: LOAD DATA INFILE - Textdatei in Mysql-Tabelle

am 27.01.2006 13:09:56 von Armin Barth

Armin Barth schrieb:
> Hallo,
> ich habe eine Textdatei (artikelnummer bezeichnung preis), jeweils duch
> Tab getrennt. Der Preis xxxx,yy ist duch Komma getrennt.
> Beim Einlesen mit LOAD DATA INFILE herst1.csv INTO TABLE material.herst1
> werden aber alle Nachkommastellen duch '00' ersetzt.
> Was muss ich hier ändern?
> Gruß
> Armin


mit dem '.' als Dezimaltrenner habt ihr schon recht, nur bekomme ich
alle diese Dateien in regelmäßigen Abständen von unseren Lieferanten
als .csv oder .xlt Tabelle.
Ich suche nach einen Weg, der mit das Umwandeln erspart bzw. beim Export
mit eingebunden werden kann.
Gruß
Armin

Re: LOAD DATA INFILE - Textdatei in Mysql-Tabelle

am 27.01.2006 13:15:01 von Fabian Schladitz

Armin Barth schrieb:
> Armin Barth schrieb:
>=20
>> Hallo,
>> ich habe eine Textdatei (artikelnummer bezeichnung preis), jeweils=20
>> duch Tab getrennt. Der Preis xxxx,yy ist duch Komma getrennt.
>> Beim Einlesen mit LOAD DATA INFILE herst1.csv INTO TABLE material.hers=
t1
>> werden aber alle Nachkommastellen duch '00' ersetzt.
>> Was muss ich hier ändern?
>> Gruß
>> Armin
>=20
>=20
>=20
> mit dem '.' als Dezimaltrenner habt ihr schon recht, nur bekomme ich=20
> alle diese Dateien in regelmäßigen Abständen von unseren Lieferan=
ten
> als .csv oder .xlt Tabelle.
> Ich suche nach einen Weg, der mit das Umwandeln erspart bzw. beim Expor=
t=20
> mit eingebunden werden kann.

Sag deinem Lieferanten, dass er die Dinger mit Punkt trennen soll. Oder=20
nutze ein Shellskript und sed (wie von Christian beschrieben).

--=20
HTH,
Fabian

Re: LOAD DATA INFILE - Textdatei in Mysql-Tabelle

am 27.01.2006 13:15:33 von Guy Walter

Armin Barth wrote:
>
> mit dem '.' als Dezimaltrenner habt ihr schon recht, nur bekomme ich
> alle diese Dateien in regelmäßigen Abständen von unseren Lieferanten
> als .csv oder .xlt Tabelle.
> Ich suche nach einen Weg, der mit das Umwandeln erspart bzw. beim Export
> mit eingebunden werden kann.
> Gruß
> Armin

Bastel Dir ein Shellscript oder PHP usw.

das beim Import die Kommas durch Punkt ersetzt und beim Export andersrum.

Gruss Guy

Re: LOAD DATA INFILE - Textdatei in Mysql-Tabelle

am 27.01.2006 18:01:00 von andreas.kronsbein

Stukenbrock, 27.01.06

Hallo Armin,


> mit dem '.' als Dezimaltrenner habt ihr schon recht, nur bekomme ich
> alle diese Dateien in regelmäßigen Abständen von unseren Lieferanten
> als .csv oder .xlt Tabelle.
> Ich suche nach einen Weg, der mit das Umwandeln erspart bzw. beim Export
> mit eingebunden werden kann.
> Gruß
> Armin
MAn kann doch einfach die Excel-Tabelle als Text so exportieren, dass das
Dezimalkomma zum Dezimalpunkt wird. Danach in MySQL importieren.


Der Asket macht aus der Tugend eine Not.

Friedrich Nietzsche