开发者

May we interact with a psql script?

Can we do something like

\echo 'Type username to show its properties';
SELECT * FROM mY开发者_如何学Go_users WHERE username = ?;
\echo 'End of script';

in a psql script file ?

The system would wait until we enter something then echo the 'End of script' string.


I just realized that internal doesn't mean variable defined into postgresql.conf.

So, I can use \prompt

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

EDIT

Like command \echo, you don't need to add a ; at the end. In fact, if you add one when using \prompt, you get an error.

You can show use the value read from the stdin.

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


The COPY command can, perhaps, help interaction with stdin,

 COPY t(a) FROM stdin;

This example do the same as

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

with less confusion with quotes, and the possibility of do a massive inputing task.


Would substitution variables accomplish what you need?

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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜