PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como FETCH usando o valor de uma variável Refcursor


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 para text .

  • Se você chamá-lo de PL/pgSQL, você pode usar uma variável no FETCH 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;