From: | Tim Landscheidt <tim(at)tim-landscheidt(dot)de> |
---|---|
To: | pgsql-de-allgemein(at)postgresql(dot)org |
Subject: | Re: WHERE col in (....): aus Textdatei |
Date: | 2011-11-01 13:35:20 |
Message-ID: | m3ty6o7yp3.fsf@passepartout.tim-landscheidt.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-de-allgemein |
Thomas Guettler <hv(at)tbz-pariv(dot)de> wrote:
> öfters habe ich Textdateien, die pro Zeile eine ID (Integer) enthalten,
> und ich daraus einen SQL-Befehl machen möchte.
> Prinzipiell ist das kein Problem:
> {{{ ids.txt
> 123
> 3456
> 2124
> ...
> }}}
> # Kommas hinter die Ziffern schreiben
> sed -re 's/.*/\0,/' tmp/ids.txt > tmp/ids.sql
> # Jetzt den SQL Befehl in der ersten Zeile einfügen, und öffnende Klammer. Am Ende letztes Komma weg
> # und schließende Klammer einfügen:
> vi tmp/ids.sql
> Wie macht Ihr so etwas, oder gibt es einfachere Lösungen?
Ich benutze Emacs und brauche sed daher nicht :-) (vi sollte
das aber auch können). Für einige kompliziertere Muster
(hauptsächlich IMDb screen scraping) habe ich Funktionen,
für automatisierte Abläufe wird grundsätzlich Perl genommen
(der Aufwand mit DBI ist minimalst, und es gibt keine Sorgen
wegen Quoting & Co.).
IIRC benutzt Du Deine Textdateien aber dazu, um Ergebnis-
mengen aus der Datenbank abzuholen und dann für weitere Ab-
fragen zu verwenden. Da vermeide ich grundsätzlich den "Me-
dienbruch" und bleibe ausschließlich in der Datenbank, indem
(mit Emacs :-)) mein tmp/something.sql dann mit "BEGIN WORK;
CREATE TEMPORARY TABLE tmpSomething AS SELECT ..." beginnt
und, wenn die weiteren Abfragen sinnvoll aussehen, mit
"COMMIT WORK;" beendet wird.
Tim
From | Date | Subject | |
---|---|---|---|
Next Message | Andreas 'ads' Scherbaum | 2011-11-07 07:58:36 | == Wöchentlicher PostgreSQL Newsletter - 06. November 2011 == |
Previous Message | Andreas Kretschmer | 2011-11-01 10:14:02 | Re: WHERE col in (....): aus Textdatei |