Man*_*uri 3 postgresql plsql stored-procedures ref-cursor stored-functions
我知道以下是可能的。即我可以将引用游标作为 Postgresql 中的返回值。
CREATE FUNCTION employeefunc(int) RETURNS refcursor AS '
DECLARE ref refcursor;
BEGIN
OPEN ref FOR SELECT * FROM employee where id = $1;
RETURN ref;
END;
Run Code Online (Sandbox Code Playgroud)
但是我们可以将引用游标作为 postgresql 函数中的 OUT 参数吗?
供您参考,请遵循我正在寻找的 Oracle 等效内容。
create or replace procedure employeefunc(rc out sys_refcursor) as
begin
open rc for 'select * from employee';
end;
Run Code Online (Sandbox Code Playgroud)
CREATE PROCEDUREPostgresql 中没有像 Oracle PL/SQL 那样的功能。您可以创建一个FUNCTION参数OUT为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;
Run Code Online (Sandbox Code Playgroud)
如您所见,没有任何RETURN声明。这是因为如果函数有OUT变量,则不能使用带有value 的RETURN语句来结束函数,但使用 simple是有效的。RETURN;
| 归档时间: |
|
| 查看次数: |
8777 次 |
| 最近记录: |