INOUT
を持つことができます プロシージャ内のパラメータ。
CALL
を使用してプロシージャを呼び出します 声明; INOUT
がある場合 パラメータの場合、ステートメントはSELECT
のように結果行を返します 。
これは、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;