PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

PostgreSQL 11 - Prozeduren

Sie können INOUT haben Parameter in einer Prozedur.

Mit dem CALL rufen Sie eine Prozedur auf Erklärung; wenn es irgendwelche INOUT gibt Parameter, gibt die Anweisung genau wie SELECT eine Ergebniszeile zurück .

Hier ist ein Beispiel, das eine Prozedur verwendet, die einen refcursor zurückgibt :

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;