postgresql – plpgsql函数返回另一个函数值
发布时间:2020-12-13 15:53:12 所属栏目:百科 来源:网络整理
导读:我有一个函数func1()返回整数. 我想写另一个函数func2(模式整数),它可以返回func1()reults或做更多的东西. func1()的返回值是INTEGER类型. 这样的事情: CREATE OR REPLACE FUNCTION func2(mode integer) RETURNS integer AS$$begin if mode=1 then return f
我有一个函数func1()返回整数.
我想写另一个函数func2(模式整数),它可以返回func1()reults或做更多的东西. 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 我的问题是如何做返回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; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |