Спасибо за решение. Это также доступно в 8.3.12

ользую 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. Возвращение курсоровМогу ли я объявить свое собственное имя курсора и использовать это имя курсора для манипулирования возвращенным курсором вместо того, чтобы Postgresql автоматически генерировал для меня? Если нет, есть ли команды, которые могут получить сгенерированное имя курсора?

Ответы на вопрос(1)

Ваш ответ на вопрос