mehrzeiliger Text in CSV Spalten

Krischu

Aktives Mitglied
Thread Starter
Registriert
26.02.2006
Beiträge
773
Reaktionspunkte
85
Ich habe von meiner Tochter eine Numbers-Datei bekommen, die zunächst aus einem WEB-Backend (Wordpress) exportiert wurde und dann in Numbers eingelesen wurde und wieder als CSV exportiert wurde.

Fakt ist jetzt, daß die CSV- Datei t.csv so aussieht:

Code:
E605;^M
E507;"ein string^M
über mehrere^M
Zeilen"^M
E600;"noch^M
mal"^M

Die lese ich mittels dieses Befehls in mysql ein:

Code:
mysql> load data local infile "t.csv" INTO TABLE alles COLUMNS TERMINATED BY ';' optionally enclosed by '"' escaped by '"' lines terminated by '\r'

in folgende Tabelle:

Code:
mysql> explain alles;
+--------------+---------------+------+-----+---------+-------+
| Field        | Type          | Null | Key | Default | Extra |
+--------------+---------------+------+-----+---------+-------+
| artnr        | varchar(32)   | YES  |     | NULL    |       |
| beschreibung | varchar(1024) | YES  |     | NULL    |       |
+--------------+---------------+------+-----+---------+-------+
2 rows in set (0.00 sec)


mysql> select artnr from alles;
+-------+
| artnr |
+-------+
| E605  |
|
E507 |
|
E600 |
|
     |
+-------+
4 rows in set (0.00 sec)

mysql>
Man sieht, daß das ^M am Ende des Eintrags der 2. Columne immer als führendes ^M dem Eintrag artnr zugeschlagen wird.
Wie muß ich das LOAD DATA statement erweitern bzw. verändern, damit das "trailing ^M" unterdrückt wird?


Erledigt. Hab's gefunden:

lines terminated by '\r\n';
 
Ich würde die Textdatei geeignet normalisieren, so dass die Steuerzeichen weg sind.
Das ist bei solchen Importen über Systemgrenzen jedesmal anders und bisschen Gefummel, aber nicht wirklich dramatisch.

Editoren für Textdateien gibt es viele. Bbedit wird oft genannt.
 
Was heißt „normalisieren“? Eine Norm gibt es da nicht. In der Windowswelt sind die Zeilenumbrüche crlf, unix und Mac lf. Die Textdatei ist ja eine CSV-Datei und Zeilenumbrüche sollten nicht verloren gehen, weil sie ja Bestandteil der Daten sind.

Aber ich habe das Problem ja lösen können.

Danke.
 
Zurück
Oben Unten