Ist es möglich mittels des COPY Befehls nur bestimmte spalten einer CSV-Datei zu Importieren?
COPY t_trans
FROM 'd:\transaktion.csv '
WITH
CSV
HEADER
DELIMITER AS ';'
MfG
Sibob
Ist es möglich mittels des COPY Befehls nur bestimmte spalten einer CSV-Datei zu Importieren?
COPY t_trans
FROM 'd:\transaktion.csv '
WITH
CSV
HEADER
DELIMITER AS ';'
MfG
Sibob
Scheinbar nicht. Was spricht dagegen, die CSV-Datei vorher mit Tools wie awk aufzubereiten?
echo "1;2;3;4" | awk 'BEGIN{FS=";"}{printf("%s;%s\n",$1,$3)}'
Dann hast Du nur noch die 1. und 3. Spalte.
Andreas
Der Import vorgang läuft nicht immer auf einem Linux. Und wenn ich die Datei vorher mittels tools bearbeite, kann ich sie auch gleich so im code importieren. Ich wollte halt nur (Rechen)Zeit sparen…
MfG
Sibob
Naja, awk gibt es auch für Fenster. Andere Lösung: COPY in eine Import-Tabelle und von da mit SELECT der nötigen Spalten in die eigentliche Zieltabelle. Aber das ist dann wohl eher mehr (Rechen)zeit.
Was ich jetzt nicht probiert habe: was passiert bei CSV-Dateien mit Header und der Angabe der Spalten beim COPY? Wäre natürlich dann nett, wenn das gefiltert werden würde. Kannst es ja mal testen und hier Bescheid geben…
Andreas
Funktioniert leider nicht. Hatte ichn auch schon probiert. Bei angabe der Header heist es nur das er die erste Zeile ignoriert. Naja, danke dennoch.
MfG
Sibob