2

我是 pg 游标的新手,我在这里有一个游标:

create function simplecur() returns refcursor as $$
declare 
    abc cursor for 
    select t.registrant, u.display_name from incident_info t, sys_user u
    where t.registrant != 10000000 and u.id = t.registrant
    group by t.registrant, u.display_name
    order by t.registrant ;
begin
    open abc;
    return abc;
end
$$language plpgsql;

我只是使用

select simplecur()

它返回

abc

现在,我想知道,当我使用时,我怎么能得到我的 sql 的结果

fetch all from abc;

它向我展示了这样的:

ERROR:  cursor "abc" does not exist
4

1 回答 1

1

当您使用游标变量时,您需要有一个未结事务:

begin;
  select simplecur();
  fetch all in abc;
commit;

另一个 SO例子

于 2012-08-01T05:09:02.757 回答