Важное примечание: PLpgSQL - это только язык на стороне сервера - нет никакой возможности взаимодействия с пользователем. Вы должны собирать входные данные на стороне клиента перед началом кода PLpgSQL, а пользовательский ввод - там как параметры.
DO
заявление является заявлением на стороне сервера, поэтому вы не можете делать никаких интерактивных действий.
DO
оператор не поддерживает параметры, так что не легкое нажатия каких-либо параметров внутри DO
заявления, но возможно с переменными пользовательскими настройками:
\prompt 'enter some text: ' psqlvar
\o /dev/null
select set_config('psql.psqlvar', :'psqlvar', false);
\o
do $$
DECLARE var text = current_setting('psql.psqlvar');
BEGIN
RAISE NOTICE 'entered text is: %', var;
END;
$$;
Функция set_config
используется для перемещения содержимого переменного клиента :psqlvar
на стороне сервера - переменная сеанса psql.psqlvar
. Содержимое этой переменной на стороне сервера принимается функцией current_setting
.
Вы должны разделить в своем сознании серверную и клиентскую информацию. Оператор DO
оценивается на стороне сервера. Команда psql
\prompt
оценивается на стороне клиента.
Привет @PavelStehule, я попытался выполнить команды, которые вы передали с помощью pgadmin3 workbench ... Это не работает, хотя .... –
@MadhuraMhatre он может работать только в консоли psql. Вероятно, нет возможности вводить переменные в pgAdmin –
Привет @PavelStehule, я знаю, что в oracle мы можем использовать «& variable» для подсказки ..но я хотел сделать то же самое с помощью pgadmin workbench, а не через консоль –