我正在使用 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?