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 |
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.
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.