1
我有一個函數寫在PL/pgSQL裏,如下所述的其中一個以相同的方式工作:REFCURSOR PL/pgSQL的
CREATE FUNCTION reffunc(text) RETURNS refcursor AS '
BEGIN
OPEN $1 FOR SELECT col FROM test WHERE c1=$1;
RETURN $1;
END;
' LANGUAGE plpgsql;
我希望能夠用一個單一的選擇命令使用反對它(使用事務)所記錄的方法是:
BEGIN;
SELECT reffunc('funccursor');
FETCH ALL IN "<unnamed cursor 1>";
COMMIT;
我相信我已經能夠之前做到這一點,但是我怎麼也想不起我都做到了,或者發現它記錄。這可能嗎?或者是否有可能以不使用refcursor的方式輸出該函數。
我期待多行返回和一些數據檢查是在函數返回之前完成的。因此需要使用存儲過程。