从postgresql中的函数返回查询结果

时间:2016-02-26 17:22:16

标签: postgresql

我有查询例如“select table,field1,field2 from table1”(id和field1是整数,field2是varchar)我需要从函数调用查询并按原样返回结果。

CREATE OR REPLACE FUNCTION get_all_record()
  RETURNS TABLE(id integer , field2 varchar(20)) AS
$$                                                  
BEGIN
    EXECUTE 'SELECT table1.id, table1.field2 FROM table1' INTO id, field2;
    RETURN;
END;
$$
  LANGUAGE plpgsql

但此解决方案只返回一个字段中的一条记录。我该如何纠正?

1 个答案:

答案 0 :(得分:1)

试试这个:

CREATE OR REPLACE FUNCTION get_all_record(OUT id integer, OUT field2 varchar(20))
RETURNS SETOF record
AS $$
BEGIN
    RETURN QUERY SELECT table1.id, table1.field2 FROM tiers;
END;
$$
LANGUAGE plpgsql;