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!

Hast Du 9.0 oder höher?

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

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