sql >> Base de Datos >  >> RDS >> PostgreSQL

Cómo FETCH usando el valor de una variable Refcursor

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;