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