PostgreSQL-Abfrageergebnis an Shell- oder PostgreSQL-Variable speichern

7

Zum Beispiel habe ich eine Tabelle speichert Wert:

%Vor%

Wie kann ich 12345 in einer Variablen in postgresql oder Shell-Skript speichern?

Folgendes habe ich in meinem Shell-Skript versucht:

%Vor%

aber echo $var gibt mir:

%Vor%

Ich habe es auch versucht

%Vor%

in psql und wenn ich \set eintippe, listet es auf:

%Vor%     
Rock 21.09.2012, 18:01
quelle

5 Antworten

11

Nein, nein, nein! Verwenden Sie "Rohdaten" wechseln von psql, wie "-t" oder "\ t" und pipe die Abfrage zu psql statt Ascii-Tabelle zu analysieren, komm schon: -)

%Vor%

Wenn Sie wirklich psql-Ausgabe parsen müssen, könnten Sie auch den Schalter -H (aktiviert die HTML-Ausgabe) verwenden und ihn mit einem Perlmodul analysieren, um HTML-Tabellen zu analysieren. Ich habe das ein- oder zweimal benutzt eine pgpass-Datei und ~/.psqlrc für einige Standardwerte, wie die Standard-DB für die Verbindung, wenn nicht angegeben.

    
Piotr Wadas 21.09.2012, 18:08
quelle
6

psql hat eine Option -c / --command= , um SQL von der Befehlszeile zu akzeptieren, und -t / --tuples-only , um die Ausgabeformatierung zu steuern.

%Vor%     
willglynn 21.09.2012 18:07
quelle
4
%Vor%     
Scott Marlowe 22.09.2012 03:00
quelle
1

Sie können das Ergebnis filtern, das Sie mit dem Befehl psql erhalten:

%Vor%     
Stephane Rouberol 21.09.2012 18:06
quelle
1

In dieser Antwort erkläre ich eine Möglichkeit, dies zu tun, indem ich einen Co-Prozess für die Kommunikation zwischen Hin-und-Her verwende mit psql . Das ist Overkill, wenn Sie nur eine Abfrage ausführen müssen und ein einzelnes Ergebnis erhalten, aber vielleicht ist es gut zu wissen, ob Sie Shell-Skripte mit psql verwenden.

    
Craig Ringer 21.09.2012 23:56
quelle

Tags und Links