我是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
答案 0 :(得分:1)
当您使用游标变量时,您需要an open transaction:
begin;
select simplecur();
fetch all in abc;
commit;
另一个SO example。