.cvs-Import, 2.Zeile fehlt
.cvs-Import, 2.Zeile fehlt
am 25.03.2006 15:09:17 von Armin Barth
Hallo NG,
ich habe hier eine .cvs-Datei mit folgendem Inhalt:
*************
400;;;|1-260|;|Bowdenzug Stop|;0.60;;476;0;0;1.86;|STÜCK|;10;|4023055102020|
401;;;|1-261|;|Bowdenzug Schwenkstück|;0.66;;476;0;0;2.04;|STÜCK|;10;
4023055102037|
402;|BRIGGS_STRAT|;|220796|;|1-262|;
Aussenh~Allenbefestigung|;0.75;;476;0;0;2.32;|STÜCK|;10;|402 3055102044|
403;|OREGON|;|02-107R|;|1-262|;
Aussenh~Allenbefestigung|;0.75;;476;0;0;2.32;|STÜCK|;10;|402 3055102044|
404;|BRIGGS_STRAT|;|022372|;|1-263|;|Aussenh~Allenbefestigun g
pass.f|;0.75;;476;0;0;2.32;|STÜCK|;10;|4023055102051|
405;|BRIGGS_STRAT|;|692179|;|1-263|;|Aussenh~Allenbefestigun g
pass.f|;0.75;;476;0;0;2.32;|STÜCK|;10;|4023055102051|
406;;;|1-264|;|Bowdenzug Biegewerkzeug|;2.85;;476;0;0;8.83;|STÜCK|;1;
4023055102068|
************
beim Import in eine Mysql-Tabelle mit
load data infile 'artikel_2006_k.csv' into table materialdb.ratioparts_2006
fields terminated by ';' enclosed by '|';
wird jede 2. Zeile verschluckt, d.h von den 75500 Zeilen der Datei landen
nur 37740 in der Tabelle.
Wo liegt hier der Fehler?
Gruß
Armin
Re: .cvs-Import, 2.Zeile fehlt
am 25.03.2006 15:47:19 von Thomas Rachel
Armin Barth wrote:
[csv gesnipt]
In einigen der genannten Zeilen fehlte ein |. Liegts vielleicht daran?
Ansonsten:
> load data infile 'artikel_2006_k.csv' into table
> materialdb.ratioparts_2006 fields terminated by ';' enclosed by '|';
>
> wird jede 2. Zeile verschluckt, d.h von den 75500 Zeilen der Datei
> landen nur 37740 in der Tabelle.
> Wo liegt hier der Fehler?
Keine Ahnung. WüÃte man die Struktur der Tabelle, wüÃte man vielleicht
mehr...
Thomas
--
Wer lächelt, wenn etwas schiefgeht, weiss einen, den er dafür
verantwortlich machen kann.
Re: .cvs-Import, 2.Zeile fehlt
am 25.03.2006 16:12:33 von Johannes Vogel
Hi Armin
Armin Barth wrote:
> ich habe hier eine .cvs-Datei mit folgendem Inhalt:
> *************
> 400;;;|1-260|;|Bowdenzug Stop|;0.60;;476;0;0;1.86;|STÜCK|;10;|4023055102020|
> 401;;;|1-261|;|Bowdenzug Schwenkstück|;0.66;;476;0;0;2.04;|STÜCK|;10;
> 4023055102037|
^-- Hier fehlt ein |
> 402;|BRIGGS_STRAT|;|220796|;|1-262|;
Hier fehlt ein | --^
> Aussenh~Allenbefestigung|;0.75;;476;0;0;2.32;|STÜCK|;10;|402 3055102044|
> 403;|OREGON|;|02-107R|;|1-262|;
Hier fehlt ein | --^
> Aussenh~Allenbefestigung|;0.75;;476;0;0;2.32;|STÜCK|;10;|402 3055102044|
> 404;|BRIGGS_STRAT|;|022372|;|1-263|;|Aussenh~Allenbefestigun g
> pass.f|;0.75;;476;0;0;2.32;|STÜCK|;10;|4023055102051|
Das ist tatsächlich nur eine Row, jedoch auf zwei Zeilen verteilt.
Zählst du die beim Zeilen zählen (vielleicht per `wc -l `) als
zwei oder tatsächlich auch als nur eine?
> 405;|BRIGGS_STRAT|;|692179|;|1-263|;|Aussenh~Allenbefestigun g
> pass.f|;0.75;;476;0;0;2.32;|STÜCK|;10;|4023055102051|
> 406;;;|1-264|;|Bowdenzug Biegewerkzeug|;2.85;;476;0;0;8.83;|STÜCK|;1;
> 4023055102068|
> ************
> beim Import in eine Mysql-Tabelle mit
> load data infile 'artikel_2006_k.csv' into table materialdb.ratioparts_2006
> fields terminated by ';' enclosed by '|';
> wird jede 2. Zeile verschluckt, d.h von den 75500 Zeilen der Datei landen
> nur 37740 in der Tabelle.
> Wo liegt hier der Fehler?
Darin, dass du anscheinend eine kaputte CSV-Datei hast. Vielleicht magst
du erst das CSV etwas abändern (bspw. mit sed), bevor du die Daten
importierst.
HTH, Johannes
Re: .cvs-Import, 2.Zeile fehlt
am 25.03.2006 19:27:32 von Armin Barth
Armin Barth wrote:
> Hallo NG,
> ich habe hier eine .cvs-Datei mit folgendem Inhalt:
> *************
> 400;;;|1-260|;|Bowdenzug Stop|;0.60;;476;0;0;1.86;|STÜCK|;10;
4023055102020|
> 401;;;|1-261|;|Bowdenzug Schwenkstück|;0.66;;476;0;0;2.04;|STÜCK|;10;
> |4023055102037|
> |402;|BRIGGS_STRAT|;|220796|;1-262|;|Aussenh~Allenbefestigun g|;0.75;;
> |476;0;0;2.32;|STÜCK|;10;|4023055102044|
> 403;|OREGON|;|02-107R|;|1-262|;|Aussenh~Allenbefestigung|;0. 75;;476;
> 0;0;2.32;|STÜCK|;10;|4023055102044|
> 404;|BRIGGS_STRAT|;|022372|;|1-263|;|Aussenh~Allenbefestigun g
> pass.f|;0.75;;476;0;0;2.32;|STÜCK|;10;|4023055102051|
> 405;|BRIGGS_STRAT|;|692179|;|1-263|;|Aussenh~Allenbefestigun g
> pass.f|;0.75;;476;0;0;2.32;|STÜCK|;10;|4023055102051|
> 406;;;|1-264|;|Bowdenzug Biegewerkzeug|;2.85;;476;0;0;8.83;|STÜCK|;1;
> 4023055102068|
> ************
> beim Import in eine Mysql-Tabelle mit
>
> load data infile 'artikel_2006_k.csv' into table
> materialdb.ratioparts_2006 fields terminated by ';' enclosed by '|';
>
> wird jede 2. Zeile verschluckt, d.h von den 75500 Zeilen der Datei landen
> nur 37740 in der Tabelle.
> Wo liegt hier der Fehler?
Danke für Eure schnellen Antworten, aber leider helfen diesen noch nicht so
richtig weiter.
Weil:
- die "|" sind im Original vorhanden und offensichtlich nur beim copy und
past unter gegangen.
- weiterhin wird genau jeder 2. Datensatz ausgelassen, d.h. es wir der 1,
der 3., der 5 usw. importiert.
- setze ich hinter jede Zeile ein weiteres "\r" wird nur die 2., 4. usw.
importiert.
Der Datenbank-Aufbau sieht wir folgt aus:
mysql> describe materialdb.ratioparts_2006;
+-----------------+-------------+------+-----+---------+---- ---+
| Field | Type | Null | Key | Default | Extra |
+-----------------+-------------+------+-----+---------+---- ---+
| id | int(11) | NO | PRI | | |
| hersteller | varchar(50) | YES | | NULL | |
| hst_artikelnr | varchar(50) | YES | | NULL | |
| ratio_artikelnr | varchar(50) | YES | | NULL | |
| bezeichnung | varchar(50) | YES | | NULL | |
| preis | float(5,2) | YES | | NULL | |
| prodcod | varchar(30) | YES | | NULL | |
| seite_garten | int(11) | YES | | NULL | |
| seite_forst | int(11) | YES | | NULL | |
| seite_werk | int(11) | YES | | NULL | |
| uvp | float(5,2) | YES | | NULL | |
| me | varchar(50) | YES | | NULL | |
| verpack_einh | varchar(10) | YES | | NULL | |
| ean13 | int(11) | YES | | NULL | |
+-----------------+-------------+------+-----+---------+---- ---+
14 rows in set (0.00 sec)
Gruß
Armin
Re: .cvs-Import, 2.Zeile fehlt
am 25.03.2006 19:50:08 von Armin Barth
Armin Barth wrote:
> Armin Barth wrote:
>
>> Hallo NG,
>> ich habe hier eine .cvs-Datei mit folgendem Inhalt:
>> *************
>> 400;;;|1-260|;|Bowdenzug Stop|;0.60;;476;0;0;1.86;|STÜCK|;10;
> 4023055102020|
>> 401;;;|1-261|;|Bowdenzug Schwenkstück|;0.66;;476;0;0;2.04;|STÜCK|;10;
>> |4023055102037|
>> |402;|BRIGGS_STRAT|;|220796|;1-262|;|Aussenh~Allenbefestigun g|;0.75;;
>> |476;0;0;2.32;|STÜCK|;10;|4023055102044|
>> 403;|OREGON|;|02-107R|;|1-262|;|Aussenh~Allenbefestigung|;0. 75;;476;
>> 0;0;2.32;|STÜCK|;10;|4023055102044|
>> 404;|BRIGGS_STRAT|;|022372|;|1-263|;|Aussenh~Allenbefestigun g
>> pass.f|;0.75;;476;0;0;2.32;|STÜCK|;10;|4023055102051|
>> 405;|BRIGGS_STRAT|;|692179|;|1-263|;|Aussenh~Allenbefestigun g
>> pass.f|;0.75;;476;0;0;2.32;|STÜCK|;10;|4023055102051|
>> 406;;;|1-264|;|Bowdenzug Biegewerkzeug|;2.85;;476;0;0;8.83;|STÜCK|;1;
>> 4023055102068|
>> ************
>> beim Import in eine Mysql-Tabelle mit
>>
>> load data infile 'artikel_2006_k.csv' into table
>> materialdb.ratioparts_2006 fields terminated by ';' enclosed by '|';
>>
>> wird jede 2. Zeile verschluckt, d.h von den 75500 Zeilen der Datei landen
>> nur 37740 in der Tabelle.
>> Wo liegt hier der Fehler?
>
> Danke für Eure schnellen Antworten, aber leider helfen diesen noch nicht
> so richtig weiter.
> Weil:
> - die "|" sind im Original vorhanden und offensichtlich nur beim copy und
> past unter gegangen.
> - weiterhin wird genau jeder 2. Datensatz ausgelassen, d.h. es wir der 1,
> der 3., der 5 usw. importiert.
> - setze ich hinter jede Zeile ein weiteres "\r" wird nur die 2., 4. usw.
> importiert.
>
> Der Datenbank-Aufbau sieht wir folgt aus:
> mysql> describe materialdb.ratioparts_2006;
> +-----------------+-------------+------+-----+---------+---- ---+
> | Field | Type | Null | Key | Default | Extra |
> +-----------------+-------------+------+-----+---------+---- ---+
> | id | int(11) | NO | PRI | | |
> | hersteller | varchar(50) | YES | | NULL | |
> | hst_artikelnr | varchar(50) | YES | | NULL | |
> | ratio_artikelnr | varchar(50) | YES | | NULL | |
> | bezeichnung | varchar(50) | YES | | NULL | |
> | preis | float(5,2) | YES | | NULL | |
> | prodcod | varchar(30) | YES | | NULL | |
> | seite_garten | int(11) | YES | | NULL | |
> | seite_forst | int(11) | YES | | NULL | |
> | seite_werk | int(11) | YES | | NULL | |
> | uvp | float(5,2) | YES | | NULL | |
> | me | varchar(50) | YES | | NULL | |
> | verpack_einh | varchar(10) | YES | | NULL | |
> | ean13 | int(11) | YES | | NULL | |
> +-----------------+-------------+------+-----+---------+---- ---+
> 14 rows in set (0.00 sec)
>
> Gruß
> Armin
P.S. wc -l artikel*.csv bringt mir exakt die 75500 Zeilen der Text-Datei
Re: .cvs-Import, 2.Zeile fehlt
am 25.03.2006 22:15:01 von Andreas Kretschmer
Andreas
--
q: why do so many people take an instant dislike to mysql?
a: it saves time (oicu in #postgresql)
Explaining the concept of referential integrity to a mysql user is like
explaining condoms to a catholic (Shadda in #postgresql)
Re: .cvs-Import, 2.Zeile fehlt
am 26.03.2006 03:53:53 von Axel Schwenke
Armin Barth wrote:
>> |402;|BRIGGS_STRAT|;|220796|;1-262|;|Aussenh~Allenbefestigun g|;0.75;;
>> |476;0;0;2.32;|STÜCK|;10;|4023055102044|
....
>> load data infile 'artikel_2006_k.csv' into table
>> materialdb.ratioparts_2006 fields terminated by ';' enclosed by '|';
> - weiterhin wird genau jeder 2. Datensatz ausgelassen, d.h. es wir der 1,
> der 3., der 5 usw. importiert.
> - setze ich hinter jede Zeile ein weiteres "\r" wird nur die 2., 4. usw.
> importiert.
Scheint so, als wären deine Zeilenenden auf merkwürdige Weise kaputt.
Hast du mal mit 'LINES TERMINATED BY ...' in LOAD DATA probiert?
Defaultmäßig werden wohl UNIX Line Endings erwartet, also "\n".
Wenn alles nix hilft, greif zum Brecheisen: jag dein Textfile durch awk
und laß das INSERT Statements generieren. Die kannst du dann an mysql
verfüttern. Bei lediglich 75.000 Zeilen sollte das schnell genug sein.
XL
Re: .cvs-Import, 2.Zeile fehlt
am 26.03.2006 09:29:20 von Armin Barth
Andreas Kretschmer wrote:
> Du mußt deswegen nicht versuchen, dies mit Deinen Fullquote-Postings
> noch zu toppen.
Sorry, war nicht in böser Absicht.
Armin
Re: .cvs-Import, 2.Zeile fehlt
am 26.03.2006 09:56:28 von Andreas Kretschmer
Andreas
--
q: why do so many people take an instant dislike to mysql?
a: it saves time (oicu in #postgresql)
Explaining the concept of referential integrity to a mysql user is like
explaining condoms to a catholic (Shadda in #postgresql)
Re: .cvs-Import, 2.Zeile fehlt
am 26.03.2006 10:25:20 von Armin Barth
Axel Schwenke wrote:
> Scheint so, als wären deine Zeilenenden auf merkwürdige Weise kaputt.
> Hast du mal mit 'LINES TERMINATED BY ...' in LOAD DATA probiert?
> Defaultmäßig werden wohl UNIX Line Endings erwartet, also "\n".
Danke für den Hinweis.
Mit einem zusätzlichen ';\n' am Zeilenende hat er geklappt.
>
> Wenn alles nix hilft, greif zum Brecheisen: jag dein Textfile durch awk
> und laß das INSERT Statements generieren. Die kannst du dann an mysql
> verfüttern. Bei lediglich 75.000 Zeilen sollte das schnell genug sein.
War dann nicht mehr nötig.
Gruß
Armin