Para nombrar el cursor, simplemente asigne una cadena al refcursor
variables:
DECLARE
ref refcursor := ''willi'';
Entonces el portal tendrá ese nombre.
Es importante que asigne el nombre antes abres el cursor.
Si no desea asignar el nombre, simplemente envíe el resultado de la función a text
, eso le dará el nombre del cursor.
Cómo usar FETCH
depende del entorno donde lo llames:
-
Si lo llama desde SQL, debe hacerlo así:
FETCH ALL FROM willi;
Tendrá que construir la declaración SQL usando el resultado de la función, convertir a
text
. -
Si lo llama desde PL/pgSQL, puede usar una variable en el
FETCH
declaración, pero debe proporcionar un destino para el resultado:DECLARE r refcursor; x text; -- use the correct type BEGIN r := reffunc2(); FETCH NEXT FROM r INTO x; END;