2016-12-07 25 views
-1

如何创建要求用户输入用户名的步骤,并返回以下选择:创作过程的[POSTGRES]

select application_name, client_hostname 
from pg_stat_activity 
where usename=p_nameuser; 

任何想法?谢谢。

+0

您将拥有'select * from your_function(USERNAME)'而不是 - 值得吗? –

+0

程序(实际上是Postgres中的函数)不能“询问”任何内容。它运行在服务器上,不能与用户交互 - 只有用户的应用程序可以“询问”用户的东西。 –

+0

我的意思是这样的过程“创建或替换功能functionusername(p_nameuser IN usename.pg_stat_activity%型)” – Python241820

回答

0

据我所知只有在psql - command“\ prompt”中才有可能。看到这里 - http://manojadinesh.blogspot.de/2013/11/interactive-postgresql-script.html或在这里 - May we interact with a psql script?

+0

我的意思是这样的过程“创建或替换功能functionusername(p_nameuser IN usename.pg_stat_activity%类型)” – Python241820

+0

古典PL/pgSQL的不能做这个。但你可以创建过程来做你想做的事情+将它与psql中的\ prompt结合起来 - 参见第一个链接,我想这是你想要的 – JosMac

0

如果你只是想创建一个具有参数,并返回信息,使用功能:

create or replace function show_activity(p_username varchar) 
as 
$$ 
    select application_name, client_hostname 
    from pg_stat_activity 
    where usename = p_username; 
$$ 
language sql; 

参见手册以了解如何创建功能更多的例子: