PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

PostgreSQL 11 - Procedure

Puoi avere INOUT parametri in una procedura.

Chiama una procedura con il CALL dichiarazione; se sono presenti INOUT parametri, l'istruzione restituirà una riga di risultati proprio come SELECT .

Ecco un esempio che utilizza una procedura che restituisce 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;