是否可以在POSTGRESQL中使用OUT/INOUT参数和返回refcursor?

是否可以在POSTGRESQL中使用OUT/INOUT参数和返回refcursor?,postgresql,ref-cursor,Postgresql,Ref Cursor,下面是一个示例片段。我尝试使用INOUT参数,同时尝试返回refcursor CREATE OR REPLACE FUNCTION reffunc2(IN key int, INOUT name int) RETURNS refcursor AS $$ DECLARE ref refcursor; BEGIN name = 123; OPEN ref FOR SELECT col FROM test; RETURN ref; END; $$ LANGUAGE plpgsql; 指定OUT

下面是一个示例片段。我尝试使用INOUT参数,同时尝试返回refcursor

CREATE OR REPLACE FUNCTION reffunc2(IN key int, INOUT name int) 
RETURNS refcursor 
AS $$
DECLARE
ref refcursor;
BEGIN
name = 123;
OPEN ref FOR SELECT col FROM test;
RETURN ref;
END;
$$ 
LANGUAGE plpgsql;

指定
OUT
INOUT
参数与指定返回值相同,因此这两个定义必须匹配:

  • 对于单个
    OUT
    参数,
    返回必须指定该参数的类型

  • 如果有多个
    OUT
    参数,则必须使用
    返回记录

不能将一个结果列指定为
OUT
参数,将另一个指定为结果

使用以下命令:

CREATE FUNCTION reffunc2(
   IN key int,
   INOUT name int,
   OUT x refcursor
) RETURNS record
在函数体中,必须为
name
x
赋值,并使用
RETURN
而不带参数