Вам нужно объявить параметр как массив, например text[]
. Вам также не нужен PL / pg SQL для этого:
CREATE OR REPLACE function test_function(array_para text[])
RETURNS TABLE (data text)
AS $$
select col1
from my_table
where my_table.col2 = any (array_para)
$$
LANGUAGE sql;
Затем вызовите его с помощью:
select *
from test_function(array['ABC', 'MITT']);
Другой вариант - использовать параметр variadic
:
CREATE OR REPLACE function test_function(variadic array_para text[])
RETURNS TABLE (data text)
AS $$
select col1
from my_table
where my_table.col2 = any (array_para)
$$
LANGUAGE sql;
Затем вы можете вызвать его с помощью:
select *
from test_function('ABC', 'MITT', 'DEF');