gpt4 book ai didi

postgresql - plpgsql 函数返回另一个函数值

转载 作者:行者123 更新时间:2023-11-29 11:36:49 24 4
gpt4 key购买 nike

我有一个返回整数的函数 func1()

我想写另一个函数 func2(mode integer) 可以返回 func1() 结果或做更多的事情。 func1() 的返回值是 INTEGER 类型。

像这样:

CREATE OR REPLACE FUNCTION func2(mode integer)
RETURNS integer AS
$$
begin
if mode=1 then
return func1(); -- NOT plpgsql syntax
end if;

more stuff .....

return 2;
end
$$
LANGUAGE plpgsql VOLATILE

我的问题是如何return func1(); ?

我知道我能做到:

select func1() into temp;
return temp;

但我想知道是否有更优雅的方法来做到这一点。

最佳答案

所有这些工作:

选项 1:

CREATE OR REPLACE FUNCTION func2(mode integer)
RETURNS integer AS
$BODY$
DECLARE
_result integer;
BEGIN
_result = 2;
IF mode=1 THEN
_result = func1();
END IF;

--more stuff .....

RETURN _result;
END
$BODY$
LANGUAGE plpgsql VOLATILE COST 100;

选项 2:

CREATE OR REPLACE FUNCTION func2(mode integer)
RETURNS integer AS
$BODY$
BEGIN
IF mode=1 THEN
RETURN func1();
END IF;

--more stuff .....

RETURN 2;
END
$BODY$
LANGUAGE plpgsql VOLATILE COST 100;

关于postgresql - plpgsql 函数返回另一个函数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39347614/

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