За да именувате курсора, просто присвоете низ към refcursor
променлива:
DECLARE
ref refcursor := ''willi'';
Тогава порталът ще има това име.
Важно е да зададете името преди отваряте курсора.
Ако не искате да присвоите името, просто преобразувайте резултата от функцията в text
, което ще ви даде името на курсора.
Как да използвате FETCH
зависи от средата, в която го наричате:
-
Ако го извикате от SQL, трябва да го направите по следния начин:
FETCH ALL FROM willi;
Ще трябва да конструирате SQL израза, като използвате резултата от функцията, преобразувана в
text
. -
Ако го извикате от PL/pgSQL, можете да използвате променлива в
FETCH
оператор, но трябва да предоставите дестинация за резултата:DECLARE r refcursor; x text; -- use the correct type BEGIN r := reffunc2(); FETCH NEXT FROM r INTO x; END;