Допустим, у меня есть эта функция:Передача нескольких значений в одном параметре
CREATE OR REPLACE FUNCTION test_function(character varaying)
RETURNS integer AS
$BODY$
DECLARE
some_integer integer;
begin
Select column2 from test_table where column1 in ($1) into some_integer;
end;
Return some_integer;
$BODY$
LANGUAGE plpgsql VOLATILE COST 100;
И я хочу, чтобы назвать это так:
Select * from test_function ('data1', 'data2','data3');
Конечно, это не может быть сделано таким образом, потому что Postgres пытается найти функцию с этим именем и тремя параметрами, которые не существуют.
Я попытался поместить кавычки в запятую, но в этом случае параметр интерпретируется неправильно: data1 ',' data2 ',' data3, как одна строка.
Есть ли способ поместить несколько значений в параметр, так что пункт IN может распознать его?
Я думаю, вы можете передать параметр массива. Посмотрите на это: http://stackoverflow.com/questions/570393/postgres-integer-arrays-as-parameters – mlinth