PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come FETCH usando il valore di una variabile Refcursor

Per nominare il cursore, assegna semplicemente una stringa al refcursor variabile:

DECLARE
    ref refcursor := ''willi'';

Quindi il portale avrà quel nome.

È importante assegnare il nome prima apri il cursore.

Se non vuoi assegnare il nome, lancia semplicemente il risultato della funzione su text , che ti darà il nome del cursore.

Come usare FETCH dipende dall'ambiente in cui lo chiami:

  • Se lo chiami da SQL, devi farlo in questo modo:

    FETCH ALL FROM willi;
    

    Dovrai costruire l'istruzione SQL usando il risultato della funzione, cast in text .

  • Se lo chiami da PL/pgSQL, puoi usare una variabile in FETCH istruzione, ma devi fornire una destinazione per il risultato:

    DECLARE
       r refcursor;
       x text;  -- use the correct type
    BEGIN
       r := reffunc2();
       FETCH NEXT FROM r INTO x;
    END;