Столкнулся с простой задачей, создания хранимых процедур, но как обычно пришлось потратить время, чтобы разобраться. Публикую эти примеры процедур, чтобы бы люди могли использовать а не рыть документацию на английском языке.

Функция возвращает значение поля (много строк).

CREATE FUNCTION g_test(integer) RETURNS SETOF text AS
$BODY$
DECLARE
r text;
BEGIN
FOR r IN SELECT "spr_user"."NAME_USER" FROM "spr_user"
WHERE "spr_user"."IDUSER" > $1
LOOP
RETURN NEXT r;
END LOOP;
RETURN;
END
$BODY$
LANGUAGE 'plpgsql'

Будет возвращено множество значений. Стоит заметить, что функция имеет входной параметр. Вызвать функцию нужно командой sql:

select g_test(2);

где 2, это входной параметр.
Эта функция вернет только одно значение:

CREATE FUNCTION test_function()
RETURNS text
AS $$
DECLARE
var_id text;
BEGIN
SELECT "spr_user"."NAME_USER" INTO var_id FROM "spr_user" LIMIT 1;
RETURN var_id;
END;
$$
LANGUAGE 'plpgsql';

Вызвать функцию нужно командой sql:

select test_function();

функция положит значение в переменную var_id и вернет переменную.
Эти функции применимы только для PostgreSQL сервера.