create or replace function f_get_data()
RETURNS TABLE(id integer)
LANGUAGE plpgsql
as $$
declare
begin
return query
select generate_series(1,10,1) as ID;
end
$$
Изначально известен возвращаемый тип данных TABLE(id integer)
по всей видимости в момент выполнения запускается запрос и возвращается результат.
Примеры вызова: можно использовать как таблицу в простом SQL.
select f_get_data()
select * from f_get_data() t where t.id>=5
Если запрос в функции динамический, то можно использовать:
return query execute 'select generate_series(1,10,1) as ID';
в том числе начиная с 8.4 можно использовать using
RETURN QUERY EXECUTE sql USING var1, var2;
Комментариев нет:
Отправить комментарий