Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql Postgres返回动态sql查询结果的标量_Postgresql - Fatal编程技术网

Postgresql Postgres返回动态sql查询结果的标量

Postgresql Postgres返回动态sql查询结果的标量,postgresql,Postgresql,这是我想做的一个简化示例 我有一个函数,它根据整数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 repla

这是我想做的一个简化示例

我有一个函数,它根据整数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”的第二个函数?

您可以不使用
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;
$$

是的,我也找不到删除res的方法。不好意思,还是谢谢你。