関数は作成されません。 RETURN
end
の後 構文的にナンセンスです。
いずれにせよ、 VARIADIC
を持つ関数 パラメータは正確に あなたが求めるもの:
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;
電話(必要に応じて):
SELECT * FROM test_function('data1', 'data2', 'data3');
単純なSQL関数を使用すると、単純な例ではplpgsqlは必要ありません。ただし、VARIADIC
plpgsql関数でも機能します。
RETURNS SETOF integer
の使用 これは明らかに複数の行を返す可能性があるためです。
詳細:
- 単一のパラメータで複数の値を渡す
- plpgsql関数の入力配列の要素に一致する行を返します
- VARIADICパラメータは最後の入力パラメータである必要があります
- plpgsql関数の入力配列の要素に一致する行を返します
SQLフィドル 追加のパラメータを使用したデモ。