如何通过函数声明变量?

问题描述 投票:0回答:1

我目前正在制作一个函数,由于我的[[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()
仅返回一个结果。我想将该结果存储在变量

var_1

中,因为以后将需要它。同样重要的是,该sub_functiont_name变量一起使用,该变量是从main_function的参数中获取的。我试图以许多不同的方式来执行此操作,例如,没有执行功能。var_1 varchar := format('select var_1 from sub_function(%s)' ,t_name);
[不幸的是,这返回了整个文本“从sub_function('soimething')中选择var_1”,而不是查询的结果。我该怎么办?感谢您提前提供的帮助!
postgresql function variables variable-declaration create-function
1个回答
2
投票

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
© www.soinside.com 2019 - 2024. All rights reserved.