sql >> Base de Datos >  >> RDS >> PostgreSQL

PostgreSQL 11 - Procedimientos

Puedes tener INOUT parámetros en un procedimiento.

Llamas a un procedimiento con CALL declaración; si hay alguna INOUT parámetros, la declaración devolverá una fila de resultados como SELECT .

Aquí hay un ejemplo que usa un procedimiento que devuelve un 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;