New Line in Quotes

Fragen und Probleme rund um die Abfragespache SQL.
Antworten
Ciatronical
Benutzer
Beiträge: 63
Registriert: Sa 21. Aug 2010, 13:10

New Line in Quotes

Beitrag von Ciatronical » Fr 27. Sep 2019, 12:42

Hey All,

mit dem Befehl

Code: Alles auswählen

copy parts FROM 'parts.csv' with CSV HEADER DELIMITER ';' QUOTE '"' ; 
versuche ich den Inhalt einer CSV-Datei in eine Tabelle zu kopieren.

Erhalte ich die Fehlermeldung: ERROR: invalid byte sequence for encoding "UTF8": 0x00

Wenn ich mir die entsprechende Zeile anschaue, befindet sich innerhalb den doppelten Anführungszeichen (im Datum) ein "New Line"
Dieses wird im Emacs als ^M angezeigt.

Wie kann ich PostgresSQL dazu bewegen die "New Lines" in den doppelten Anführungszeichen beim kopieren zu ignorieren??

Viele Grüße
Ronny

pogomips
Erfahrener Benutzer
Beiträge: 114
Registriert: Fr 18. Nov 2016, 09:55

Re: New Line in Quotes

Beitrag von pogomips » Sa 28. Sep 2019, 14:22

Du brauchst vermutlich eine Vorverarbeitung.

copy..from ist das gegenstück zu copy ..to
Exportiere mit copy .. to analoge Textdaten mit Zeilenumbruch und schaue, wie es codiert wird. Wahrscheinlich sowas wie \r\n.
Damit ersetzt Du in der Vorverarbeitung die CSV Zeilenumbrüche.

Gisman
Erfahrener Benutzer
Beiträge: 1140
Registriert: Fr 20. Jan 2006, 15:30
Wohnort: Pfalz
Kontaktdaten:

Re: New Line in Quotes

Beitrag von Gisman » Sa 28. Sep 2019, 16:43

Unter Linux sollte da vim oder sed das Mittel der Wahl sein. Unter Windows könnte uedit eine Hilfe sein.

Gruß Uwe

Ciatronical
Benutzer
Beiträge: 63
Registriert: Sa 21. Aug 2010, 13:10

Re: New Line in Quotes

Beitrag von Ciatronical » Sa 28. Sep 2019, 16:51

Hey,
danke für die Antworten.
Ich habe es mit Hilfe von Python und sed realisiert
https://forum.ubuntuusers.de/topic/new- ... chen-entf/

Antworten