2016-12-07 1 views
-1

Как создать процедуру, которая запрашивает имя пользователя и возвращает следующие выбора:Создание процедуры [POSTGRES]

select application_name, client_hostname 
from pg_stat_activity 
where usename=p_nameuser; 

Есть идеи? Спасибо.

+0

вы должны 'выбрать * из your_function (USERNAME)' вместо этого - это стоит .. –

+0

процедура (на самом деле функция в Postgres) не может «спросить» за что?. Он работает на сервере и не может взаимодействовать с пользователем - только пользовательское приложение может «спросить» пользователя. –

+0

Я имею в виду процедуру вроде этого «создать или заменить функцию functionusername (p_nameuser IN usename.pg_stat_activity% type)» – Python241820

ответ

0

Насколько я знаю, это возможно только в psql - команде "\ 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% type)» – Python241820

+0

Classical pl/pgsql не может сделай это. Но вы можете создать процедуру, чтобы сделать то, что вы хотите, + объединить ее с \ prompt в psql - см. В первой ссылке, я думаю, это то, что вы хотите – 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; 

Посмотреть инструкцию для многих других примеров о том, как создавать функции :

Смежные вопросы