Re: WHERE col in (....): aus Textdatei

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

In response to

Browse pgsql-de-allgemein by date

  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