Postgresql 使用refcursor输入调用Postgres过程/函数

Postgresql 使用refcursor输入调用Postgres过程/函数,postgresql,Postgresql,我正在将一个Oracle函数移植到Postgres,它有一个输入参数作为refcursor类型。ported Postgres函数如下所示 create or replace function gt_mlt_dtls(dtl_cur IN REFCURSOR, flag TEXT, dt DATE) returns........ 如何将dtl\u cur参数的值作为REFCURSOR传递?在Oracle中,CURSOR(一些选择查询)用于输入refcursor。在PostgreSQL中可能吗

我正在将一个Oracle函数移植到Postgres,它有一个输入参数作为refcursor类型。ported Postgres函数如下所示

create or replace function gt_mlt_dtls(dtl_cur IN REFCURSOR, flag TEXT, dt DATE)
returns........

如何将
dtl\u cur
参数的值作为
REFCURSOR
传递?在Oracle中,
CURSOR(一些选择查询)
用于输入refcursor。在PostgreSQL中可能吗?

您可以
在SQL中声明
游标,并将其名称传递给过程:

BEGIN;

DECLARE c CURSOR FOR SELECT ...;

CALL gt_mlt_dtls('c', 'text', current_date);

COMMIT;
要从另一个过程调用它,请调用

DECLARE
   c refcursor;
BEGIN
   OPEN c FOR SELECT ...;
   CALL gt_mlt_dtls(c, ...);

谢谢,如何在另一个过程中调用此函数(使用refcursor输入参数)?我添加了示例代码。