estoy usando PostgreSQL 8.3 y tienen la siguiente función simple que devolverá un refcursor
al clienteLlamar a una función que devuelve un 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;
Ahora, puede utilizar los siguientes comandos SQL para llamar a esta función y manipular el cursor vuelto, pero el nombre del cursor se genera automáticamente por el PostgreSQL
BEGIN;
SELECT function_1(); --It will output the generated cursor name , for example , "<unnamed portal 11>" ;
FETCH 4 from "<unnamed portal 11>";
COMMIT;
Además, se declara explícitamente el nombre de cursor como el parámetro de entrada de la función como se describe por 38.7.3.5. Returning Cursors .Can I de Clare mi propio nombre de cursor y use este nombre de cursor para manipular el cursor devuelto en lugar de Postgresql genera automáticamente para mí? Si no, ¿hay algún comando que pueda obtener el nombre del cursor generado?
+1, pregunta interesante –