我目前正在制作一个函数,由于我的[[main_function中另一个函数的结果,我需要声明一个变量。
CREATE OR REPLACE FUNCTION main_function(t_name varchar)
RETURNS void AS
$BODY$
DECLARE
var_1 varchar := execute format('select var_1 from sub_function(%s)' ,t_name);
BEGIN
--do something with var_1
END;
$BODY$
LANGUAGE plpgsql;
我的返回带有三个列的一行。sub_function
select var_1 from sub_function()
仅返回一个结果。我想将该结果存储在变量中,因为以后将需要它。同样重要的是,该sub_function与t_name变量一起使用,该变量是从main_function的参数中获取的。我试图以许多不同的方式来执行此操作,例如,没有执行功能。var_1
var_1 varchar := format('select var_1 from sub_function(%s)' ,t_name);
[不幸的是,这返回了整个文本“从sub_function('soimething')中选择var_1”,而不是查询的结果。我该怎么办?感谢您提前提供的帮助!
return_column_name是函数应返回的列。我不知道名字,因为您说过您的函数返回3列。仅供参考,您可以使用select ...进入va1,var2,var3
获取所有三个值CREATE OR REPLACE FUNCTION main_function(t_name varchar)
RETURNS void AS
$BODY$
DECLARE
var_1 varchar;
BEGIN
select <return_column_name> from sub_function(t_name) into var_1;
END;
$BODY$
LANGUAGE plpgsql;
链接到doc