Postgresql исторически не поддерживает процедурный код на командном уровне - только внутри функций.Однако в Postgresql 9 была добавлена поддержка для выполнения встроенного блока кода , который эффективно поддерживает что-то подобное, хотя синтаксис, возможно, немного странный, и есть много ограничений по сравнению с тем, что вы можете делатьSQL Server.В частности, блок встроенного кода не может возвращать набор результатов, поэтому его нельзя использовать для того, что вы обрисовали в общих чертах выше.
В общем, если вы хотите написать некоторый процедурный код и заставить его возвращать результат,Вы должны поместить это в функцию.Например:
CREATE OR REPLACE FUNCTION somefuncname() RETURNS int LANGUAGE plpgsql AS $$
DECLARE
one int;
two int;
BEGIN
one := 1;
two := 2;
RETURN one + two;
END
$$;
SELECT somefuncname();
Проводной протокол PostgreSQL, насколько я знаю, не допускает таких вещей, как команда, возвращающая несколько наборов результатов.Таким образом, вы не можете просто отобразить пакеты T-SQL или хранимые процедуры на функции PostgreSQL.