Uw functie zou niet worden gemaakt. RETURN
na end
is syntactische onzin.
Hoe dan ook, een functie met een VARIADIC
parameter doet precies waar je om vraagt:
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;
Bel (naar wens):
SELECT * FROM test_function('data1', 'data2', 'data3');
Met behulp van een eenvoudige SQL-functie is plpgsql niet vereist voor het eenvoudige voorbeeld. Maar VARIADIC
werkt ook voor plpgsql-functies.
Met behulp van RETURNS SETOF integer
aangezien dit uiteraard meerdere rijen kan retourneren.
Details:
- Meerdere waarden in één parameter doorgeven
- Retourneer rijen die overeenkomen met elementen van invoerarray in plpgsql-functie
- VARIADIC-parameter moet de laatste invoerparameter zijn
- Retourneer rijen die overeenkomen met elementen van invoerarray in plpgsql-functie
SQL Fiddle demo met extra parameters.