Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 15

Thema: Textdateien mit Postgres laden

  1. #1
    hanspeter ist offline Neuer Benutzer
    Registriert seit
    15.04.2010
    Beiträge
    7

    Standard Textdateien mit Postgres laden

    Hallo,

    ich möchte gerade von einer Oracle-DB auf PG umsteigen und habe nicht die geringste Ahnung, wie ich den folgenden Oracle-Code

    Code:
    LOAD DATA
    INFILE 'myConfigFile.txt'
    INTO TABLE myTable
    INSERT
    FIELDS TERMINATED BY ',' TRAILING NULLCOLS
    (
        field1,
        field2,
        
    )
    für PG implementieren muss.
    Der folgende Link verspricht Hoffnung, funktioniert aber nicht...
    mySQL

    Das besondere dabei ist noch, dass auf diesem Wege lo_import() für den "Upload" einer Datei einzubauen ist.

    Hat jemand einen Hinweis, wie man es lösen kann?
    Eine unschöne Idee wäre die Verwendung von COPY um den Inhalt des Textfiles in die DB zu importieren, um getrennt noch die Datei hochzuladen....klingt aber nicht optimal...


    Danke im Voraus für hilfreiche Hinweise
    HansPeter

  2. #2
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.056

    Standard

    Vergiss die Seite bitte ganz schnell wieder. Das hat wohl jemand von irgendeiner MySQL-Anleitung kopiert und großflächig Text da drin stehen lassen.
    Diverse Befehle auf dieser Seite sind nicht für PostgreSQL sondern für MySQL gedacht.

    Nun, was du suchst, ist ev. COPY:
    PostgreSQL: Documentation: Manuals: PostgreSQL 8.4: COPY
    Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören

    Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

    PostgreSQL Service & Support

  3. #3
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.056

    Standard

    Ich hab den Menschen mal angeschrieben, dessen E-Mail Adresse da unten auf der Webseite steht.
    Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören

    Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

    PostgreSQL Service & Support

  4. #4
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von ads Beitrag anzeigen
    Vergiss die Seite bitte ganz schnell wieder. Das hat wohl jemand von irgendeiner MySQL-Anleitung kopiert und großflächig Text da drin stehen lassen.
    Diverse Befehle auf dieser Seite sind nicht für PostgreSQL sondern für MySQL gedacht.

    Nun, was du suchst, ist ev. COPY:
    PostgreSQL: Documentation: Manuals: PostgreSQL 8.4: COPY
    Autsch, ich hab auch grad mal die Seite mir angeschaut. Das ist einfach nur *zensiert*, was dort steht...

    Und ja, COPY scheint die Lösung für das Problem zu sein.

    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

  5. #5
    akretschmer ist offline Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von ads Beitrag anzeigen
    Ich hab den Menschen mal angeschrieben, dessen E-Mail Adresse da unten auf der Webseite steht.
    Ich auch, BCC an Dich, grad eben ...
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

  6. #6
    hanspeter ist offline Neuer Benutzer
    Registriert seit
    15.04.2010
    Beiträge
    7

    Standard

    Vielen Dank für die schnellen Antworten, ich werde es gleich mal probieren

    Schönes Wochenende!
    Grüße
    HansPeter

  7. #7
    hanspeter ist offline Neuer Benutzer
    Registriert seit
    15.04.2010
    Beiträge
    7

    Standard

    Leider komme ich mit COPY nicht so ganz zum Ziel, denn ich möchte mit diesem SQL-Statement auch eine Datei in der DB ablegen.
    Wenn ich dafür lo_import() benutze, muss mein Feld vom Typ "OID" sein, doch leider erwartet das vorhandene Programm an jener Stelle den Typ "bytea".

    gibt es eine Möglichkeit in PG über ein SQL Statement, die Datei direkt in einem Feld vom Typ bytea abzulegen?
    ...denn intern macht lo_import auch nichts weiter ... über die Referenz der OID zu der Tabelle pg_largeobject ist der von mir gewünschte Typ "bytea" zu finden.

    Die einzige Alternative, die mir einfällt ist das programmatische Einfügen der Daten beispielsweise mit einem Java-Prog., oder?

    Hinweise sind willkommen :-)

    Danke schon mal

    Grüße
    HansPeter

  8. #8
    ads
    ads ist offline Super-Moderator
    Registriert seit
    08.02.2006
    Ort
    MD
    Beiträge
    4.056

    Standard

    ByteA und Large Objects sind zwei grundsätzlich verschiedene Dinge. Von lo_import() hat bisher auch niemand (außer dir) gesprochen.

    Dein Eingangsposting sagte auch nichts davon aus, dass du eine einzelne Datei in einem einzelnen Feld ablegen willst, sondern dass du Daten aus einer Datei laden willst.


    Du verwirrst mich - vielleicht spezifizierst du mal genau, was du machen möchtest ;-)
    Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören

    Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler

    PostgreSQL Service & Support

  9. #9
    hanspeter ist offline Neuer Benutzer
    Registriert seit
    15.04.2010
    Beiträge
    7

    Standard

    beides möchte ich machen :-)

    also ich habe eine txt-Datei, die folgendermaßen aussieht:
    id;name;beschreibung;pfadZuDatei

    in der DB gibt es eine Tabelle:
    id(numeric);name(varchar);beschreibung(varchar);fi leData(bytea)


    ich möchte nun die Textdatei auslesen und die Tabelle füllen(was ich mit COPY gemacht habe) , der Haken dabei ist (was ich eingangs verschwiegen habe), dass ich anhand von "pfadZuDatei" eine Datei in der DB ablegen möchte.

    wenn ich dies auf dem bereits beschriebenen Weg mit lo_import() realisiere, muss ich den Datentyp des Feldes "fileData" jedoch auf OID ändern, was ich aber eigentlich vermeiden möchte, um nicht meinen Programmcode ändern zu müssen.


    bin ich auf dem Holzweg?

    HansPeter

  10. #10
    hanspeter ist offline Neuer Benutzer
    Registriert seit
    15.04.2010
    Beiträge
    7

    Standard

    "pfadZuDatei" ist der Pfad zu einer Datei, die mit der Textdatei nichts zu tun hat ....

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Frage Shared Buffer im Voraus laden ?
    Von batzee im Forum Konfiguration
    Antworten: 10
    Letzter Beitrag: 17.02.2011, 18:08
  2. libpq.dll 8.3.x lässt sich nicht laden
    Von CUBa42 im Forum Sonstige Installationsprobleme
    Antworten: 2
    Letzter Beitrag: 12.10.2008, 16:22
  3. Problem Import von Textdateien mit Fehlern
    Von Dobrelius im Forum Allgemeines
    Antworten: 11
    Letzter Beitrag: 16.09.2008, 21:46
  4. PostgreSQL beim booten laden
    Von hotte im Forum Installation von PostgreSQL
    Antworten: 2
    Letzter Beitrag: 14.03.2007, 08:44
  5. phppgadmin Seite laden
    Von nixdorf im Forum phpPGAdmin
    Antworten: 6
    Letzter Beitrag: 22.12.2006, 19:20

Stichworte

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