从 plpgsql 函数返回多行

Posted

技术标签:

【中文标题】从 plpgsql 函数返回多行【英文标题】:Return multiple rows from plpgsql function 【发布时间】:2013-08-31 23:29:08 【问题描述】:

我有以下功能:

CREATE OR REPLACE FUNCTION function1() RETURNS TABLE(foo1 VARCHAR, foo2 VARCHAR) AS $$
    BEGIN
    RETURN QUERY SELECT e.col1, e.col2 FROM my_table e;
    END;
$$ LANGUAGE plpgsql;

它返回如下内容:

function1
record
|--------------|
(a,b)
(c,d)

但我希望得到类似于这样的查询的结果:

SELECT e.col1, e.col2 FROM my_table e;

  col1  col2
|-----|-----|
   a     b
   c     d

因为我想执行函数 a 获取 java resultSet 中的分隔列值并迭代它们。谢谢!

【问题讨论】:

RETURN QUERY-Record in PostgreSQL的可能重复 【参考方案1】:

你需要做的

select * from function1();

【讨论】:

以上是关于从 plpgsql 函数返回多行的主要内容,如果未能解决你的问题,请参考以下文章

返回查询时如何退出plpgsql函数

从 plpgsql 函数中获取 Java ResultSet 的返回值

在 plpgsql 中,如何从返回记录的函数中退出

尝试使用 RETURNING 和更新/插入从 plpgsql 函数返回时出错

为啥我的 plpgsql 函数不返回任何行

返回多列的plpgsql函数被多次调用