Вызов функции, возвращающей рефкурсор

Я использую 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 , "" ;
FETCH 4   from  ""; 
COMMIT;

Кроме того, явное объявление имени курсора в качестве входного параметра функции, как описано в 38.7.3.5. Возврат курсоров . Могу ли я объявить свое собственное имя курсора и использовать это имя курсора для управления возвращаемым курсором вместо того, чтобы Postgresql автоматически генерировал для меня? Если нет, то есть ли какие-нибудь команды, которые могут получить сгенерированное имя курсора?

11
задан Ken Chan 13 July 2011 в 06:14
поделиться