CREATE OR REPLACE FUNCTION transformServers(data jsonb)
RETURNS SETOF record as $$
DECLARE
r record;
BEGIN
for r in select.serversSet.id,serversSet.hostname from jsonb_to_recordset(data->'data') AS
serversSet (
id bigint,
hostname text,
) loop
return next r;
end loop;
return;
END;
$$ language plpgsql;
我运行上面的代码,得到一个错误说"返回"记录"
的函数需要列定义列表答案 0 :(得分:4)
问题解决了!实际上问题出现在另一个函数中,我称之为transformServers(json)
。
每次我们调用returns setof record
的函数时,我们都需要指定列,因此当我们调用transformServers(json)
时,我们必须将其作为
select * from transformServers(json) as f(id bigint, hostname text)
之前,我做过
select * from transformServers(json)
哪个不起作用。