【发布时间】:2011-10-04 05:23:42
【问题描述】:
我正在使用 Postgresql 8.3 并具有以下简单函数,它将向客户端返回 refcursor
CREATE OR REPLACE FUNCTION function_1() RETURNS refcursor AS $$
DECLARE
ref_cursor REFCURSOR;
BEGIN
OPEN ref_cursor FOR SELECT * FROM some_table;
RETURN (ref_cursor);
END;
$$ LANGUAGE plpgsql;
现在,我可以使用以下 SQL 命令来调用这个函数并操作返回的游标,但是游标名称是由 PostgreSQL 自动生成的
BEGIN;
SELECT function_1(); --It will output the generated cursor name , for example , "<unnamed portal 11>" ;
FETCH 4 from "<unnamed portal 11>";
COMMIT;
除了像38.7.3.5. Returning Cursors 描述的那样显式声明游标名称作为函数的输入参数之外,我是否可以声明自己的游标名称并使用该游标名称来操作返回的游标,而不是 Postgresql 自动为我生成?
如果没有,有什么命令可以获取生成的游标名吗?
【问题讨论】:
标签: sql postgresql plpgsql database-cursor ref-cursor