返回值类型介绍 ELSE teledb$ vsql:'SELECT id,yhm,nc FROM t1 ORDER BY id'; teledb$ END IF; teledb$ FOR vrec IN EXECUTE vsql LOOP teledb$ RETURN NEXT vrec; teledb$ END LOOP; teledb$ RETURN ;最后的RETURN可以加,也可以不加上去 teledb$ END; teledb$ $$ teledb LANGUAGE PLPGSQL; CREATE FUNCTION teledb SELECT FROM f20(2) t(id integer,yhm text); id yhm + 1 teledb 2 teledb1 (2 rows) teledb SELECT FROM f20(3) t(id integer,yhm text,nc text); id yhm nc ++ 1 teledb teledb 2 teledb1 teledb1 (2 rows) teledb CREATE OR REPLACE FUNCTION f21(OUT aid integer,OUT ayhm TEXT) RETURNS SETOF record AS teledb $$ teledb$ DECLARE teledb$ 使用out返回 teledb$ vrec record; teledb$ BEGIN teledb$ FOR vrec IN SELECT id,yhm FROM t1 LOOP teledb$ aid:vrec.id; teledb$ ayhm:vrec.yhm; teledb$ RETURN NEXT; teledb$ END LOOP; teledb$ RETURN ;最后的RETURN可以加,也可以不加上去 teledb$ END; teledb$ $$ teledb LANGUAGE PLPGSQL; CREATE FUNCTION teledb SELECT FROM f21(); aid ayhm + 1 teledb 2 teledb1 (2 rows) teledb CREATE OR REPLACE FUNCTION f22() RETURNS SETOF refcursor AS teledb $$ teledb$ DECLARE teledb$ 返回游标集 teledb$