gpt4 book ai didi

在 Postgresql 中使用变量的 SQL 查询

转载 作者:行者123 更新时间:2023-11-29 14:05:10 25 4
gpt4 key购买 nike

我有一个 SQL 查询

SELECT c,d FROM tableX where a='str' AND b=var1 ;

我想用变量替换 var1。我尝试使用 plpgsql。

CREATE OR REPLACE FUNCTION foo (var1 integer) 
RETURNS TABLE (c integer, d varchar) AS
$BODY$
DECLARE
aa varchar = 'str';
BEGIN
RETURN QUERY EXECUTE
'SELECT c,d FROM tableX where a=aa AND b=@1' using var1;
END;
$BODY$
LANGUAGE plpgsql;

错误是

No operator matches the given name and argument type(s). You might need to add explicit type casts.

最佳答案

首先 - 指定参数的正确方法是 $1,而不是 @1

其次 - 您不需要动态 sql 来将参数传递给查询。只需编写如下内容:

CREATE OR REPLACE FUNCTION foo (var1 integer) 
RETURNS TABLE (c integer, d varchar) AS
$BODY$
DECLARE
aa varchar = 'str';
BEGIN
RETURN QUERY SELECT c,d FROM tableX where a=aa AND b=var1;
END;
$BODY$
LANGUAGE plpgsql;

关于在 Postgresql 中使用变量的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17941957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com