преобразовать переменные внутри функции и вернуть значения
В sql server была процедура, которая выполнялась внутри другой процедуры:
exec spProc_Name @x, @y, @z OUTPUT, @a OUTPUT, @b OUTPUT, @c OUTPUT
при этом все переменные брались из первой процедуры.
Мне нужно сделать подобное в postgres, но я не знаю, как правильно. Вместо процедур нужно использовать функцию? Указать параметры inout для тех переменных, которые нужно получить обратно? Самое непонятное, как обновить значения всех четырех переменных? Когда функция возвращает одно значение, это просто x = f_name(), а как в таком случае? Документацию читаю, но без примеров не очень понятно.
Ответы (1 шт):
Автор решения: Namerek
→ Ссылка
create or replace procedure some_procedure(in arg1 int, inout arg2 int)
language plpgsql
as
$$
begin
arg2 := arg1 * 5;
end;
$$;
create procedure some_another_procedure(arg1 int)
language plpgsql
as
$$
declare
var_for_change int;
begin
call some_procedure(arg1, var_for_change);
raise notice '%', var_for_change;
end;
$$;
call some_another_procedure(20);
-- 100