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

PostgreSQL 11 - Procedimentos


Você pode ter INOUT parâmetros em um procedimento.

Você chama um procedimento com o CALL demonstração; se houver algum INOUT parâmetros, a instrução retornará uma linha de resultado como SELECT .

Aqui está um exemplo que usa um procedimento que retorna um refcursor :
CREATE PROCEDURE testproc(INOUT r refcursor) LANGUAGE plpgsql AS
$$BEGIN
   r := 'cur';
   OPEN r FOR VALUES (1), (42), (12321);
END;$$;

BEGIN;

CALL testproc(NULL);

  r  
-----
 cur
(1 row)

FETCH ALL FROM cur;

 column1 
---------
       1
      42
   12321
(3 rows)

COMMIT;