【发布时间】:2014-09-12 21:20:07
【问题描述】:
我正在尝试运行这样的动态查询(只是一个想法):
declare
params text[] ;
begin
params := ARRAY['30', 'sometext'];
return execute QUERY 'select id, label from "content" where id>$1 and label = $2' using params;
end ;
问题是,我的 params 数组可以具有可变长度 - 我可以准备适当的选择查询,但我想使用“using”子句执行它,该数组包含所有用 $ 标记的参数。
可能是这样,或者我应该使用已经放入语句中的值构建整个 select 语句(但是,这是我想避免的)。
【问题讨论】:
-
$1(ID) 和label分配的值是多少?我认为还有另一种好方法可以用于您的情况。 -
即使这是可能的(事实并非如此),您第一次想要混合数据类型时也会遇到麻烦。
-
@Winged Panther:问题在于参数的数量及其值和类型是未知的。参数从客户端应用程序作为对象集合(可变长度的集合)传递,我从中获取值列表,转换为表......是的 - 这是问题;-)
标签: sql arrays postgresql dynamic-sql execute