gpt4 book ai didi

postgresql - 允许将 RefCursor 作为 Postgresql 函数的 OUT 参数吗?

转载 作者:行者123 更新时间:2023-11-29 14:15:35 26 4
gpt4 key购买 nike

我知道以下是可能的。即我可以在 Postgresql 中将引用游标作为返回值。

CREATE FUNCTION employeefunc(int) RETURNS refcursor AS '
DECLARE ref refcursor;
BEGIN
OPEN ref FOR SELECT * FROM employee where id = $1;
RETURN ref;
END;

但是我们可以在 postgresql 函数中将引用游标作为 OUT 参数吗?

供您引用,遵循我正在寻找的 Oracle 等价物。

create or replace procedure employeefunc(rc out sys_refcursor) as
begin
open rc for 'select * from employee';
end;

最佳答案

在 Postgresql 中没有像 Oracle PL/SQL 那样的 CREATE PROCEDURE。您可以使用 OUT 参数创建一个 FUNCTION 作为 REFCURSOR,但是 RETURN TYPE 应该指定为 REFCURSOR.

CREATE FUNCTION employeefunc (rc_out OUT refcursor)
RETURNS refcursor
AS
$$
BEGIN
OPEN rc_out
FOR
SELECT *
FROM employees;
END;
$$ LANGUAGE plpgsql;

如您所见,没有RETURN 语句。这是因为如果函数有 OUT 变量,您不能使用带有 valueRETURN 语句结束函数,而是使用简单的 RETURN; 有效。

关于postgresql - 允许将 RefCursor 作为 Postgresql 函数的 OUT 参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49207616/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com