Twoja funkcja nie zostałaby utworzona. RETURN
po end
to syntaktyczny nonsens.
Tak czy inaczej, funkcja z VARIADIC
parametr dokładnie o co prosisz:
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;
Zadzwoń (według potrzeb):
SELECT * FROM test_function('data1', 'data2', 'data3');
Używając prostej funkcji SQL, plpgsql nie jest wymagany dla prostego przykładu. Ale VARIADIC
działa również dla funkcji plpgsql.
Używanie RETURNS SETOF integer
ponieważ może to oczywiście zwrócić wiele wierszy.
Szczegóły:
- Przekaż wiele wartości w jednym parametrze
- Zwróć wiersze pasujące do elementów tablicy wejściowej w funkcji plpgsql
- Parametr VARIADIC musi być ostatnim parametrem wejściowym
- Zwróć wiersze pasujące do elementów tablicy wejściowej w funkcji plpgsql
Skrzypce SQL demo z dodatkowymi parametrami.