преобразовать переменные внутри функции и вернуть значения

В 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
→ Ссылка