如何解决如何使用 pg 从 postgres 存储过程或函数中检索结果集
嗨,我正在开发一个使用 postgres 的 Web 应用程序,其中一些 sql 位于存储过程/函数中。如果一个函数返回一个游标,我们如何在 nodejs 中检索和处理结果集?我正在使用 pg (node-postgres)。以下是我想从 nodejs 代码调用的测试过程的代码。
drop table if exists tmp;
create table tmp
(
x integer
);
drop function if exists t1;
create or replace function t1( p_value integer)
returns refcursor
language plpgsql
as $$
declare
ref refcursor;
begin
--insert into tmp(x) values(p_value);
open ref for select x from tmp;
return ref;
end
$$;
解决方法
这不是 Postgres 的做法。将其更改为集合返回函数:
create or replace function t1(p_value integer)
returns table (x integer) --<< adjust here for the real column list
language sql
as $$
insert into tmp(x) values(p_value)
returning x; --<< adjust here for the real column list
$$;
然后将其用作 SELECT 语句的一部分:
select *
from t1(42);
显然,42
可以是您的编程语言中的参数。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。