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

Posted

技术标签:

【中文标题】返回查询时如何退出plpgsql函数【英文标题】:How to exit from plpgsql function while returning query 【发布时间】:2018-10-13 12:10:58 【问题描述】:

在 plpgsql 函数中,如何返回查询并从函数本身返回?如果我只是执行return query select ... 之后的语句也会被执行,那么return 实际上并没有从整个函数中返回?

【问题讨论】:

【参考方案1】:

仅使用return; 作为单个语句,例如:

create or replace function my_func()
returns setof int language plpgsql as $$
begin
    return query select generate_series(1,2);
    return;
    return query select generate_series(3,4);
end $$;

select my_func();

 my_func 
---------
       1
       2
(2 rows)

【讨论】:

以上是关于返回查询时如何退出plpgsql函数的主要内容,如果未能解决你的问题,请参考以下文章

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

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

如何在执行 SELECT... 语句时将表列传递给 plpgsql 函数

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

如何在不创建函数的情况下运行 plpgsql?

Greenplum plpgsql 函数在输入结束时返回语法错误