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 noFETCH
declaraçã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;