如何将值发送到postgres函数?

时间:2019-04-08 20:32:23

标签: java postgresql hibernate

我有一个带有数字类型参数的函数,我已经成功完成了查询,我的问题是我不知道如何在IN where id in(parameter)中传递多个参数。 ID的类型为BIGINT

在JAVA中,我有以下查询:

select parametro1, parametro2, parametro3 from function_detalls ("parameters");

parameters是字符串类型1,2,3,4,5,6,7, ....

我的问题是如何将这种类型的参数传递给函数?

1 个答案:

答案 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展示其动感