有时候,函数名称可能是配置的,需要动态去调用并获得函数结果,可以使用 execute sql into result 动态执行来达到目的。方法示例如下:
函数定义:
CREATE OR REPLACE FUNCTION public.f_square(v_a int)
RETURNS int -- 平方
LANGUAGE 'plpgsql'
AS $BODY$
declare
lv_result int;
begin
lv_result := v_a * v_a;
return lv_result;
end
$BODY$;
动态调用并以得结果:
DO $$
declare
lv_i int;
lv_result int;
begin
lv_i := 90;
execute ' select f_square($1)' using lv_i into lv_result;
raise notice '%', lv_result;
end $$;
输出结果:
注意: 8100
DO
Query returned successfully in 45 msec.
动态调用SQL函数
本文介绍了一种在数据库中动态调用自定义函数的方法,并通过一个具体的例子——计算平方值的函数,展示了如何使用EXECUTE SQL INTO RESULT进行动态函数调用及获取结果。
4053

被折叠的 条评论
为什么被折叠?



