如何将变量声明为函数的结果?
How to declare a variable as a result of a function?
我目前正在制作一个函数,我需要声明一个变量作为我 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_functionreturns一行三列。
select var_1 from sub_function()
returns只有一个结果。我想将该结果存储在变量 var_1 中,因为稍后我会需要它。
同样重要的是,这个 sub_function 与 t_name 变量一起运行,我从 main_function的说法。
我尝试过以多种不同的方式来做到这一点,例如没有执行功能。
var_1 varchar := format('select var_1 from sub_function(%s)' ,t_name);
不幸的是,这个 returns 全文 "select var_1 from sub_function('soimething')" 而不是查询的结果。
我应该怎么办?
提前感谢您的帮助!
return_column_name 是您的函数应该 return 的列。我不知道名字,因为你已经说过你的函数 returns 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;
Link 至 doc
我目前正在制作一个函数,我需要声明一个变量作为我 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_functionreturns一行三列。
select var_1 from sub_function()
returns只有一个结果。我想将该结果存储在变量 var_1 中,因为稍后我会需要它。 同样重要的是,这个 sub_function 与 t_name 变量一起运行,我从 main_function的说法。 我尝试过以多种不同的方式来做到这一点,例如没有执行功能。
var_1 varchar := format('select var_1 from sub_function(%s)' ,t_name);
不幸的是,这个 returns 全文 "select var_1 from sub_function('soimething')" 而不是查询的结果。 我应该怎么办? 提前感谢您的帮助!
return_column_name 是您的函数应该 return 的列。我不知道名字,因为你已经说过你的函数 returns 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;
Link 至 doc