Import einer CSV-Datei

Hallo,

ich möchte mit einer CSV-Datei Daten in eine Tabelle importieren.

Dazu habe ich die entsprechende Tabelle in meiner Datenbank bei phppgadmin ausgewählt und dann auf Importieren geklickt. Dort habe ich bei Format CSV ausgewählt, erlaubte Null-Zeichen ist \N und bei Datei habe ich den Verzeichnispfad zu meiner CSV-Datei angegeben.

Klicke ich dann auf Importieren, steht da pötzlich:

No server supplied!

Was muß ich machen damit ich meine Daten in die Datenbank bekomme?

Gruß Nixdorf

Falls die Arbeit mit psql möglich ist: dort mit COPY arbeiten :wink:


Andreas

Hallo,

mit psql meinst Du postgresql? Ja das ist die Datenbank die ich installiert habe. Leider kenne ich mich mit Ihr nichst so gut aus, das ich jetzt weiß wo ich mit einem COPY- Befehl arbeiten könnte.

Ist es denn gennerell nicht möglich mit phppgadmn CSV-Date in TAbellen zu importieren? Das kann doch nicht sein…





Gruß Nixdorf

Das Commandline-Interface zu PG. Ja.

Mit phppadmn muß man doch auch daten importieren können oder nicht?


Gruß Nixdorf[/QUOTE]


Möglich. Aber ich nutze es nicht und kann daher nix dazu sagen. Dafür nutze ich aber psql recht oft und mache damit auch Cron-gesteuert Datenimport.


Andreas

Hallo,

wie siet denn so ein Komando aus, wenn ich die CSV-Datei daten.csv in die Datenbank Preisliste >> Tabell Preise einfügen möchte? Und wo muß ich es ausführen? Einfach in der Konsole?


Gruß Nixdorf



kretschmer@pegasus:~$ cat foo.copy
1       das ist ein test        1
2       noch eine Zeile 2
3       nun reicht es   3
\N      mit NULL        \N
kretschmer@pegasus:~$ psql -U webmaster test
Welcome to psql 8.1.4, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

test=# create table foo (a int, b text, c int);
CREATE TABLE
test=*# copy foo from '/home/kretschmer/foo.copy';
COPY
test=*# select * from foo;
 a |        b         | c
---+------------------+---
 1 | das ist ein test | 1
 2 | noch eine Zeile  | 2
 3 | nun reicht es    | 3
   | mit NULL         |
(4 rows)

test=*#

Die Datei foo.copy enthält meine Daten, die ich dann mit dem COPY - Befehl einlese.


Andreas

Hallo nixdorf,

wenn man CVS-Dateien importieren will, muss unbedingt der User, der die Datenbank betreibt, in dem Verzeichnis zumindest Lese-Berechtigung haben. Dieser User heißt normalerweise “postgres”.



mfg

fristo

wo liegt denn die datei der Datenbank, bzw. wie heist Sie?

ich kann aber z.B. mit phppgadmin ohne probleme eine Tabelle umbenennen. Damit sollte ich doch genügend Berechtigungen haben.

Einen CSV-Dump erstellen kann ich auch und wenn ich dann diesen Dump wieder Importiere klappt das auch.
Gruß Nixdorf

DU willst eine Datei importieren, da solltest DU auch wissen, wo diese liegt und wie der Herrgott diese benannt hat.

ich kann aber z.B. mit phppgadmin ohne probleme eine Tabelle umbenennen. Damit sollte ich doch genügend Berechtigungen haben.

Komplett andere Baustelle.


Andreas

Ist die DB auf dem selben Rechner wie auch Dein PGAdmin? Oder arbeitest Du remote?


Andreas

Hallo,

ja, die DB ist auf dem selben Rechner wie phppgadmin. was mir noch auffällt: die CSV-DAtei ist sehr groß, 50000 Zeilen. Wenn ich versuche nur 8 davon in einer neuen csv-Datei abzuspeichern und die dann in phpgbadmin importiere, dann kommt die Fehlermeldung nicht mehr. kommen zwar andere.

Woran kann das liegen?


Gruß Nixdorf

Die Antwort auf die Frage steht in der hochgeheimen Fehlermeldung.

Andreas