我有一个带有数字类型参数的函数,我已经成功完成了查询,我的问题是我不知道如何在IN where id in(parameter)
中传递多个参数。
ID的类型为BIGINT
在JAVA中,我有以下查询:
select parametro1, parametro2, parametro3 from function_detalls ("parameters");
parameters
是字符串类型1,2,3,4,5,6,7, ....
我的问题是如何将这种类型的参数传递给函数?
答案 0 :(得分:2)
将数组传递给函数并使用WHERE = ANY()
。
例如:
CREATE FUNCTION func_test(params text[])
RETURNS SETOF test
LANGUAGE PLPGSQL
AS $$
DECLARE
BEGIN
RETURN QUERY
SELECT * FROM test WHERE txt = ANY(params);
END;
$$
致电:
SELECT * FROM func_test(ARRAY['hello', 'world']);
DBFiddle展示其动感