Vaše funkce by nebyla vytvořena. RETURN
po end
je syntaktický nesmysl.
V obou případech jde o funkci s VARIADIC
parametr dělá přesně o co žádáte:
CREATE OR REPLACE FUNCTION test_function(VARIADIC varchar[])
RETURNS SETOF integer AS
$func$
SELECT column2
FROM test_table
WHERE column1 = ANY($1);
$func$ LANGUAGE sql;
Zavolejte (podle potřeby):
SELECT * FROM test_function('data1', 'data2', 'data3');
Při použití jednoduché funkce SQL není pro jednoduchý příklad plpgsql vyžadován. Ale VARIADIC
funguje také pro funkce plpgsql.
Pomocí RETURNS SETOF integer
protože to samozřejmě může vrátit více řádků.
Podrobnosti:
- Předejte více hodnot do jednoho parametru
- Vrátí řádky odpovídající prvkům vstupního pole ve funkci plpgsql
- Parametr VARIADIC musí být posledním vstupním parametrem
- Vrátí řádky odpovídající prvkům vstupního pole ve funkci plpgsql
SQL Fiddle demo s dalšími parametry.