进入PL / pgSQL ...
我仍在学习语法。有时,我会遇到以下错误消息:
错误:无法在非SETOF函数中使用RETURN QUERY
这听起来有点神秘,我在Postgres文档中找不到信息。因此,问题是:
同样,假设有这样的事情,什么是SETOF函数?
答案 0 :(得分:1)
什么是非SETOF函数?
这是一个返回单个(标量)值的函数,例如integer
或varchar
,例如
select upper('foo')`
upper()
是一个“非SETOF”函数,它仅返回一个值。所以一个功能是定义为returns integer
不能返回SELECT查询的完整结果,它需要使用return 42;
但不能使用return query ...
;
什么是SETOF函数?
这是一个返回结果集的函数-与表类似(通常声明为returns table (...)
。您可以像表一样使用它:
select *
from some_set_returning_function();