postgresql - 如何在 Postgres 函数中检索多个结果行?

标签 postgresql stored-functions table-functions

其实我只是想通过使用下面的代码返回多个结果行。但是我在调​​用该函数时只收到了结果集的一行(日期不是问题,因为我在普通的选择查询中检查了相同的日期——它检索了多个结果行)。

如何使用以下函数检索多个结果行?

CREATE OR REPLACE FUNCTION fun_audit_trail(in as_on_date date, out mail_id varchar, out user_id varchar, out user_name varchar, 
        out last_login_time timestamp, out last_logout_time timestamp, out logout_flag varchar, out user_available_flag varchar)
 AS 
$BODY$

BEGIN

    select am.am_usrmailid,am.am_usr_loginid,am.am_usr_name,am.am_last_login_time,am.am_last_logout_time,am.am_logout_flag,am.am_usr_available_flag 
    into mail_id,user_id,user_name,last_login_time,last_logout_time,logout_flag,user_available_flag
    from auth_monitor am where am_last_login_time <= as_on_date;

END $BODY$
  LANGUAGE 'plpgsql' COST 100.0 SECURITY INVOKER;

最佳答案

你所要做的就是添加

RETURNS SETOF record

在参数列表之后。

关于postgresql - 如何在 Postgres 函数中检索多个结果行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58637135/

相关文章:

postgresql - 表 »rowtype« 缺少 FROM 子句条目

python - 在 Cloud Functions 中使用 Cloud SQL (Postgres)

ruby-on-rails - 如何将 GoDaddy MS-SQL 备份迁移到 Rails 应用程序

sql - 使用 postgresql 连接一对多表时如何使用 LIMIT 和 OFFSET?

sql - 如何获取 SP 中已声明变量的维度?

postgresql - Pl/Pgsql,将数组参数传递给 INSERT

mysql - 为什么这个 MySQL 存储函数给出的结果与在查询中进行计算的结果不同?

sql-server - 在表值函数中声明变量

sql-server - 为什么表值函数的性能比select直接语句好?

oracle - 在 PL/SQL 中,如何从用户定义函数返回查询结果?