Postgresql 返回“0”的函数需要列定义列表;“记录”;

Postgresql 返回“0”的函数需要列定义列表;“记录”;,postgresql,Postgresql,我运行上面的代码,得到一个错误,说“返回“record”的函数需要一个列定义列表”问题解决了!实际上问题在另一个函数中,我调用transformServers(json) 每次调用返回记录集的函数时,我们都需要指定列,因此当调用transformServers(json)时,我们必须按照 CREATE OR REPLACE FUNCTION transformServers(data jsonb) RETURNS SETOF record as $$

我运行上面的代码,得到一个错误,说“返回“record”的函数需要一个列定义列表”

问题解决了!实际上问题在另一个函数中,我调用
transformServers(json)

每次调用
返回记录集的函数时,我们都需要指定列,因此当调用
transformServers(json)
时,我们必须按照

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;
以前是这样的

 select * from transformServers(json) as f(id bigint, hostname text) 

这不起作用。

问题解决了!很高兴。实际上问题出在另一个函数中,我称之为transformServers(json)。每次调用返回记录集的函数时,我们都需要指定列,因此当我们调用transformServers(json)时,就像
select*from transformServers(json)。如f(id bigint,hostname text)
我以前做过
从transformServers(json)中选择*
 select * from transformServers(json)