使用PostgreSQL,我使用以下结构存储函数:
create or replace function myfunc() returns refcursor as $$
declare rc refcursor := 'mycursor';
-- ...
begin;
-- ...
open rc for select ...;
return rc;
end; $$ language plpgsql;
这将返回我在强制事务中使用的光标。我用的是这样的:
begin;
select myfunc();
fetch all in mycursor;
close mycursor;
commit;
但在大多数示例和教程中,声明
close mycursor;
只是省略了。
我知道在函数内部使用它时需要关闭它,但是当它返回时,可能
commit;
自动关闭任何打开的光标?
那么,关闭光标真的有必要吗?
不知道如何检查它在
承诺;
因为光标不再在范围内。