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