postgresql - 什么是 "non-SETOF function"?

标签 postgresql plpgsql

进入 PL/pgSQL...

我还在学习语法。有时,我会遇到此错误消息:

ERROR: cannot use RETURN QUERY in a non-SETOF function

这听起来有点神秘,我无法在 Postgres 文档中找到信息。因此问题:

  • 什么是非 SETOF 函数?

同样,假设存在这样的东西,什么是 SETOF 函数?

最佳答案

What's a non-SETOF function?

这是一个返回单个(标量)值的函数,例如integervarchar,例如

select upper('foo')` 

upper() 是一个“非 SETOF”函数,它只返回一个值。所以一个功能是例如定义为returns integer 不能返回SELECT查询的完整结果,需要使用return 42; 但是不能使用return query .. .;


what's a SETOF function?

它是一个返回结果集的函数 - 类似于表(它通常声明为 returns table (...)。您可以像使用表一样使用它:

select *
from some_set_returning_function();

关于postgresql - 什么是 "non-SETOF function"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55688418/

相关文章:

postgresql - 如何在 Postgres 中实现包含运算符

sql - 具有重复参数的 PostgreSQL 函数

javascript - PostgreSQL。第一次处理插入,第二次尝试选择但未找到

node.js - 在 Sequelize 中使用左连接复制行

sql - 更新后如何在 Postgres 中使用触发器?

arrays - 返回 NULL 的空数组的 array_length()

sql - 如何根据 PL/pgSQL 中的开始日期和持续时间(工作日)获取结束日期?

postgresql - 如何解释 Postgresql 中 SELECT...JOIN...INTO 的结果?

sql - 查询查找具有值 x 的其他对应元素的元组

Java Hibernate设置参数