这是我的功能:
CREATE OR REPLACE FUNCTION getAllFoo()
RETURNS SETOF "TraderMonthOutstanding" AS
$BODY$
DECLARE
r record;
BEGIN
FOR r IN (select * from "TraderMonthOutstanding"
where "TraderId"=1 and "IsPaid"=false)
LOOP
RETURN NEXT r.TraderId;
END LOOP;
RETURN;
END
$BODY$
LANGUAGE 'plpgsql' ;
我只想要此循环中的 TraderId
但我无法获得它,因为它给我一个错误。
我做错了什么?
最佳答案
您声明 getAllFoo()
将RETURNS SETOF "TraderMonthOutstanding"
(一组具有表 TraderMonthOutstanding
结构的行),但随后您RETURN NEXT r.TraderId
(单个字段)。
您需要将声明的返回类型更改为 RETURNS SETOF "TraderMonthOutstanding".TraderId%TYPE
或 RETURN NEXT r
。
关于postgresql - 遍历表并返回特定列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20114315/