För att namnge markören, tilldela helt enkelt en sträng till refcursor
variabel:
DECLARE
ref refcursor := ''willi'';
Då kommer portalen att ha det namnet.
Det är viktigt att du tilldelar namnet före du öppnar markören.
Om du inte vill tilldela namnet, casta helt enkelt funktionsresultatet till text
, som ger dig markörnamnet.
Hur man använder FETCH
beror på miljön där du kallar det:
-
Om du anropar det från SQL måste du göra det så här:
FETCH ALL FROM willi;
Du måste konstruera SQL-satsen med hjälp av resultatet från funktionen, cast till
text
. -
Om du anropar det från PL/pgSQL kan du använda en variabel i
FETCH
uttalande, men du måste ange en destination för resultatet:DECLARE r refcursor; x text; -- use the correct type BEGIN r := reffunc2(); FETCH NEXT FROM r INTO x; END;