1

我正在使用 postgresql 10.3。以下函数返回绑定到查询的游标

CREATE FUNCTION reffunc1(text) RETURNS refcursor AS '
DECLARE mycursor CURSOR FOR SELECT col FROM test where col=$1;
BEGIN
    OPEN mycursor;
    RETURN mycursor;
END;
' LANGUAGE plpgsql
;

我需要将返回的光标设为“WITH HOLD”。我做了如下。

CREATE FUNCTION reffunc2(text) RETURNS refcursor AS '
DECLARE mycursor CURSOR WITH HOLD FOR SELECT col FROM test where col=$1;
BEGIN
    OPEN mycursor;
    RETURN mycursor;
END;
' LANGUAGE plpgsql
;

但我收到以下错误。

ERROR:  syntax error at or near "WITH"

为什么我们不能在这里的函数内部使用 WITH HOLD?

4

0 回答 0