6 Stimmen

Können wir mit einem psql-Skript interagieren?

Können wir etwas tun wie

\echo 'Type username to show its properties';
SELECT * FROM mY_users WHERE username = ?;
\echo 'End of script';

in einer psql-Skriptdatei?

Das System würde warten, bis wir etwas eingeben und dann die Zeichenfolge "Ende des Skripts" ausgeben.

8voto

Luc M Punkte 15642

Ich habe gerade festgestellt, dass intern nicht bedeutet, dass die Variable in postgresql.conf definiert ist.

Ich kann also verwenden \prompt

\prompt 'Please, enter an username ', my_user
SELECT * FROM mY_users WHERE username = :my_user;
\echo 'End of script'  

EDIT

Wie Befehl \echo müssen Sie keine ; am Ende. In der Tat, wenn Sie eine hinzufügen, wenn Sie \prompt erhalten Sie eine Fehlermeldung.

Sie können den von stdin gelesenen Wert anzeigen.

\echo 'Here\'s the value read from stdin : ' :my_user

2voto

Peter Krauss Punkte 12277

Der COPY-Befehl kann vielleicht bei der Interaktion mit stdin helfen,

 COPY t(a) FROM stdin;

Dieses Beispiel macht das Gleiche wie

\prompt 'Please, enter a string ', mystr
insert into t(a) values ( ':mystr' );

mit weniger Verwirrung bei Anführungszeichen und der Möglichkeit, eine umfangreiche Eingabe zu machen.

-1voto

dmags Punkte 1

Würden Substitutionsvariablen das leisten, was Sie brauchen?

http://www.oracle.com/technology/support/tech/sql_plus/htdocs/sub_var.html

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X