我想在Postgres中创建一个函数:
CREATE OR REPLACE FUNCTION public.getAvailableForms (
get_form_names TEXT[]
) RETURNS TABLE (
id INTEGER,
name TEXT,
location TEXT,
created TIMESTAMP
) AS $$
BEGIN
RETURN QUERY
SELECT *
FROM form
WHERE form.name IN get_form_names;
END;
$$ LANGUAGE plpgsql
SECURITY DEFINER;
然而,它告诉我WHERE form.name IN get_form_names
在语法上是不正确的。
我找不到任何关于如何在postgres函数调用中使用数组变量的文档。
无论如何,是否可以在WHERE ... IN
中使用作为函数参数传递的数组值?
答案 0 :(得分:4)
使用any
:
where form.name = any (get_form_names)
in
将用于离散的项目列表,但any
用于数组。