Para nomear o cursor, basta atribuir uma string ao
refcursor variável:DECLARE
ref refcursor := ''willi'';
Então o portal terá esse nome.
É importante que você atribua o nome antes você abre o cursor.
Se você não quiser atribuir o nome, simplesmente converta o resultado da função para
text , que lhe dará o nome do cursor. Como usar
FETCH depende do ambiente onde você o chama:-
Se você chamá-lo de SQL, você tem que fazer assim:
FETCH ALL FROM willi;
Você terá que construir a instrução SQL usando o resultado da função, convertida paratext.
-
Se você chamá-lo de PL/pgSQL, você pode usar uma variável noFETCHdeclaração, mas você tem que fornecer um destino para o resultado:
DECLARE r refcursor; x text; -- use the correct type BEGIN r := reffunc2(); FETCH NEXT FROM r INTO x; END;