Su función no se crearía. RETURN
después de end
es una tontería sintáctica.
De cualquier manera, una función con un VARIADIC
el parámetro hace exactamente lo que pides:
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;
Llame (como desee):
SELECT * FROM test_function('data1', 'data2', 'data3');
Usando una función SQL simple, no se requiere plpgsql para el ejemplo simple. Pero VARIADIC
también funciona para funciones plpgsql.
Usando RETURNS SETOF integer
ya que esto obviamente puede devolver múltiples filas.
Detalles:
- Pasar múltiples valores en un solo parámetro
- Devolver filas que coincidan con los elementos de la matriz de entrada en la función plpgsql
- El parámetro VARIADIC debe ser el último parámetro de entrada
- Devolver filas que coincidan con los elementos de la matriz de entrada en la función plpgsql
Violín SQL demostración con parámetros adicionales.