Ergebnis 1 bis 3 von 3

Thema: Tabellenspalte einlesen und in Datei schreiben

  1. #1
    mtsB ist offline Neuer Benutzer
    Registriert seit
    26.05.2011
    Beiträge
    5

    Standard Tabellenspalte einlesen und in Datei schreiben

    Moin,

    ich m�chte eine Datenbankroutine schreiben dir mir eine Spalte einer Zeile ausliest und den Inhalt in eine Datei schreibt. Anschlie�end soll die Spalte mit dem Dateinamen bef�llt werden.
    Der Dateiname soll sich aus den anderen Spaltennamen der entsprechenden Zeile zusammensetzen. Meine Tabelle sieht so aus:

    id | cusid | archiv | created | createdby | modified | modifiedby | probelauf | typ | protokoll | basis_cusid |

    Output-Dateiname: cusid_basis_cusid_created_typ_id.zip
    Bsp: 12835_180_2010-06-10-11:23:06.254_PERSONAL_193356.zip

    Wie ich das kopieren bewerkstellige wei� ich, ich habe nur keine Ahnung wie ich den Dateinamen dynamisch halten kann, da dies f�r 2000 Zeilen ausgef�hrt werden muss.

    Hoffe ihr k�nnt mir weiterhelfen. Danke!

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

    Standard

    Zitat Zitat von mtsB Beitrag anzeigen
    Moin,

    ich m�chte eine Datenbankroutine schreiben dir mir eine Spalte einer Zeile ausliest und den Inhalt in eine Datei schreibt. Anschlie�end soll die Spalte mit dem Dateinamen bef�llt werden.
    Der Dateiname soll sich aus den anderen Spaltennamen der entsprechenden Zeile zusammensetzen. Meine Tabelle sieht so aus:

    id | cusid | archiv | created | createdby | modified | modifiedby | probelauf | typ | protokoll | basis_cusid |

    Output-Dateiname: cusid_basis_cusid_created_typ_id.zip
    Bsp: 12835_180_2010-06-10-11:23:06.254_PERSONAL_193356.zip

    Wie ich das kopieren bewerkstellige wei� ich, ich habe nur keine Ahnung wie ich den Dateinamen dynamisch halten kann, da dies f�r 2000 Zeilen ausgef�hrt werden muss.

    Hoffe ihr k�nnt mir weiterhelfen. Danke!
    Hast Du 9.0 oder höher?

    Code:
    test=# select * from foo;
     id |  file
    ----+--------
      1 | datei1
      2 | datei2
      3 | datei3
    (3 rows)
    
    test=# do $$ declare i text; begin for i in select file from foo loop execute 'copy (select id from foo where file = ' || quote_literal(i) || ') to ' || quote_literal('/tmp/' || i); end loop; end; $$ language plpgsql;
    DO
    Falls noch kein 9.0: baue Dir eine Funktion, die dynamisch den EXECUTE-String zusammenbaut, und führe das aus. In 9.0 geht das als Inliner, siehe Beispiel.


    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

  3. #3
    mtsB ist offline Neuer Benutzer
    Registriert seit
    26.05.2011
    Beiträge
    5

    Standard

    Dank für die Hilfe!
    Hab die 8.4, muss mir dann wohl eine Funktion bauen.

Ähnliche Themen

  1. Problem BYTEA Feld in Datei schreiben
    Von blauer_elephant im Forum Sonstige
    Antworten: 10
    Letzter Beitrag: 10.09.2010, 18:47
  2. Ausführungszeit in Log-Datei schreiben
    Von dardanus im Forum SQL
    Antworten: 5
    Letzter Beitrag: 25.09.2009, 18:40
  3. Antworten: 2
    Letzter Beitrag: 12.06.2008, 15:04
  4. Datei erstellen/schreiben
    Von bj77 im Forum PL/pgSQL
    Antworten: 18
    Letzter Beitrag: 11.01.2008, 15:56
  5. Datentyp einer Tabellenspalte ändern
    Von alexander_ro im Forum SQL
    Antworten: 3
    Letzter Beitrag: 02.04.2007, 17:41

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