这是我要执行的操作的简化示例。
我有一个函数,可以根据整数id的输入返回一些有效的sql语句作为文本。这些sql语句始终返回布尔值。
create function query_func(_id bigint) returns text as $$
select sql from my_table_of_sql_statements where id = _id;
$$ language sql;
我想基于输入的id值执行这些sql语句,并将结果作为标量函数返回。
create or replace function test.ufn_id_exists (_id bigint) returns boolean as $$
declare sql text;
res bool;
begin
sql = query_func(_id);
execute sql into res;
return res;
end;
$$
我的问题是:有没有办法重写不需要中间变量'res'或'sql'的第二个函数?
答案 0 :(得分:1)
您可以使用sql
变量,但是我认为没有办法摆脱结果变量:
create or replace function test.ufn_id_exists (_id bigint) returns boolean as $$
declare res bool;
begin
execute query_func(_id) into res;
return res;
end;
$$