Ihre Funktion würde nicht erstellt werden. RETURN
nach end
ist syntaktischer Unsinn.
So oder so, eine Funktion mit einem VARIADIC
Parameter tut genau worum Sie bitten:
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;
Rufen Sie (nach Wunsch) an:
SELECT * FROM test_function('data1', 'data2', 'data3');
Bei Verwendung einer einfachen SQL-Funktion ist plpgsql für das einfache Beispiel nicht erforderlich. Aber VARIADIC
funktioniert auch für plpgsql-Funktionen.
Verwendung von RETURNS SETOF integer
da dies offensichtlich mehrere Zeilen zurückgeben kann.
Einzelheiten:
- Übergeben Sie mehrere Werte in einem einzigen Parameter
- Gib Zeilen zurück, die mit Elementen des Eingabearrays in der plpgsql-Funktion übereinstimmen
- VARIADIC-Parameter muss der letzte Eingabeparameter sein
- Gib Zeilen zurück, die mit Elementen des Eingabearrays in der plpgsql-Funktion übereinstimmen
SQL-Geige Demo mit zusätzlichen Parametern.