Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 14 von 14

Thema: CSV-Datei per Linux-Konsole importieren

  1. #11
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.465

    Standard

    Zitat Zitat von Hannes23 Beitrag anzeigen
    Hihi, da antworte ich mal lieber wieder bevor ihr euch an die Gurgel geht :-)

    Ja, der Kern des Problems ist wohl wirklich, dass ich das ganze übers Netzwerk machen möchte und nicht lokal. Hätte ich vielleicht im Topic erwähnen sollen...

    Hier meine zwei Ansätze:

    1) "Naiver Ansatz" ohne netcat
    Code:
     echo "COPY mytable FROM 'mycsv.csv' WITH CSV DELIMITER AS ';'" | psql -h 192.168.0.3 --dbname mydb -U postgres --password
    Problem: Ich bekomme die Meldung "psql: FATAL: database "mydb" does not exist". Da sie aber 100%ig auf dem entfernten Server existiert (nicht aber bei mir lokal) vermute ich, dass an dem Ansatz grundsätzlich was nicht passt...

    2) Netcat
    Ddamit hab ich ehrlich gesagt noch nie gearbeitet und ich hab auch nicht verstanden, wie ich das hier einsetzen sollte...statt dem "echo" vielleicht?


    Vielen Dank und viele Grüße,

    Hannes
    Alles, was man braucht, ist ein lokales psql. Dann reicht:

    Code:
    [root@web45 ~]# # bin auf system web45, db läuft auf system sql9
    [root@web45 ~]# # hier meine lokale csv - Datei:
    [root@web45 ~]# cat foo.csv
    1,eins
    2,zwei
    3,drei
    [root@web45 ~]# # nun kopiere ich das via meinem lokalen psql in die entfernte Datenbank
    [root@web45 ~]# psql -h sql9 -U kretschmer test -c "copy test.foo from stdin delimiter ','" < foo.csv
    [root@web45 ~]# # das war es dann auch schon
    [root@web45 ~]#

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  2. #12
    Hannes23 ist offline Benutzer
    Registriert seit
    07.05.2010
    Beiträge
    40

    Standard

    @ads:
    Vielen Dank für die Info! Ich werde es jedoch zunächst mal mit dem Ansatz ohne netcat versuchen.

    @akretschmer:
    Seltsam, jetzt habe ich es genauso gemacht wie Du, bekomme aber trotzdem wieder die gleiche Fehlermeldung wie vorher:


    Code:
    root@host1:/home/hannes/Desktop/test# psql -h host2 -U postgres mydb -c "copy mydb.mytable from stdin delimiter ';'" < temp.csv
    Passwort für Benutzer postgres: 
    psql: FATAL:  database "mydb" does not exist
    Die Datenbank mydb existiert wie gesagt lokal nicht (host1), aber auf dem Server (host2) schon.


    P.S.:
    Ich finde es wirklich super, wie ihr beide euch hier im Forum engagiert! Ich habe von euch schon so viele weiterhelfende Beiträge gelesen und bin immer wieder überrascht von euerem Postgres-Knowhowr! Mir ist durchaus klar, dass das viel Zeit in Anspruch nimmt und sicher oft Nerven kostet :-) Deshalb halte ich es zumindest mal für angebracht, mal ein großes Lob zu äußern :-)

  3. #13
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.465

    Standard

    Zitat Zitat von Hannes23 Beitrag anzeigen
    @ads:
    Vielen Dank für die Info! Ich werde es jedoch zunächst mal mit dem Ansatz ohne netcat versuchen.

    @akretschmer:
    Seltsam, jetzt habe ich es genauso gemacht wie Du, bekomme aber trotzdem wieder die gleiche Fehlermeldung wie vorher:


    Code:
    root@host1:/home/hannes/Desktop/test# psql -h host2 -U postgres mydb -c "copy mydb.mytable from stdin delimiter ';'" < temp.csv
    Passwort für Benutzer postgres: 
    psql: FATAL:  database "mydb" does not exist
    Die Datenbank mydb existiert wie gesagt lokal nicht (host1), aber auf dem Server (host2) schon.


    P.S.:
    Ich finde es wirklich super, wie ihr beide euch hier im Forum engagiert! Ich habe von euch schon so viele weiterhelfende Beiträge gelesen und bin immer wieder überrascht von euerem Postgres-Knowhowr! Mir ist durchaus klar, dass das viel Zeit in Anspruch nimmt und sicher oft Nerven kostet :-) Deshalb halte ich es zumindest mal für angebracht, mal ein großes Lob zu äußern :-)
    Danke für das Lob ;-)

    Zu Deinem Problem: ich könnte mir jetzt nur noch vorstellen, daß die DB vielleicht "MyDB" oder "MYDB" oder "myDB" oder "Mydb" oder ... heißt, nicht aber "mydb".

    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  4. #14
    Hannes23 ist offline Benutzer
    Registriert seit
    07.05.2010
    Beiträge
    40

    Standard

    arg, ich hatte vergessen, dass die DB nicht auf dem Standartport läuft. Wenn man den richtigen Port noch mit -p angibt, funktioniert es.

    Vielen Dank und ein schönes Wochenende!

Seite 2 von 2 ErsteErste 12

Ähnliche Themen

  1. Schema auf Konsole abfragen?
    Von MisterX im Forum PL/pgSQL
    Antworten: 1
    Letzter Beitrag: 26.03.2010, 08:38
  2. psql Konsole & Encoding
    Von Nuadu im Forum Sonstige
    Antworten: 3
    Letzter Beitrag: 02.09.2009, 08:32
  3. Ganze XML Datei in eine Zeile importieren
    Von Minam im Forum Allgemeines
    Antworten: 1
    Letzter Beitrag: 07.05.2007, 11:54
  4. Antworten: 4
    Letzter Beitrag: 14.03.2007, 12:14
  5. Installation mittels Konsole
    Von Lord_Hessia im Forum Installation von PostgreSQL
    Antworten: 4
    Letzter Beitrag: 17.01.2007, 15:18

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum