我有一张桌子my_table
和一个对应的功能:
create function my_function() returns setof my_table as
$$
select my_table.*
from my_table
where ...;
$$
language sql stable;
现在,我想在另一个plpgsql
函数中使用该函数。我想存储的结果,my_function()
以便我可以继续处理数据。在PostgreSQL中如何完成?我尝试了以下方法:
create function my_other_function() returns setof my_table as
$$
declare
results setof my_table;
begin
results := (select * from my_function());
...
end;
$$
language plpgsql stable;
然而,这给出的错误setof my_table
是in中的无效类型my_other_function()
,这有点奇怪,因为它是in中的有效返回类型my_function()
。
您可以为此使用数组:
create function my_other_function()
returns setof my_table
as
$$
declare
results my_table[];
begin
select array_agg(t)
into results
from my_function() t;
return query
select *
from unnest(results);
end;
$$
language plpgsql stable;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句