【发布时间】:2015-04-19 00:56:06
【问题描述】:
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;
我运行上面的代码,得到一个错误提示“返回“记录”的函数需要列定义列表
【问题讨论】:
-
问题解决了!快乐的。实际上问题出在另一个我称之为 transformServers(json) 的函数中。每次我们调用一个返回setof记录的函数时,我们都需要指定列,所以当我们调用transformServers(json)时,像
select * from transformServers(json).as f(id bigint, hostname text)之前我做过select * from transformServers(json)
标签: postgresql