您是否有一个接受输入变量的SQL块,在连接中使用该变量并返回结果集。
踢球者是我被要求在函数外部执行此操作 - 即在SQL块中。
因此,例如,我想将值1234567890
传递给变量v_hold
:
DO $$
declare
v_hold integer;
BEGIN
select * from t_table_A where ID = v_hold ;
--return alert_mesg;
END$$;
--$$ LANGUAGE plpgsql
我已经完成的测试表明,为了返回结果集,您必须在RETURN TABLE
声明中对其进行定义。我试图在功能之外定义这个,但我还没想到它。
这可以在函数外部完成 - 即传递变量并根据引用where子句中的变量的select语句返回结果集吗?
答案 0 :(得分:1)
您可以尝试使用预先准备好的声明。例如:
PREPARE myStatement (int) AS SELECT * FROM t_table_A where ID = $1;
然后运行语句使用execute命令:
EXECUTE myStatement(1234567890);
答案 1 :(得分:0)
DO执行匿名代码块,或者换句话说,使用过程语言执行临时匿名函数。
代码块被视为没有参数的函数体,返回void。它被解析并执行一次。
您可以使用shell脚本生成代码块,并获得您正在寻找的那种效果。