Вижте:http://www.postgresql.org/docs/9.1/static/arrays.html
Ако вашият нероден драйвер все още не ви позволява да предавате масиви, тогава можете:
-
предайте низово представяне на масив (който вашата запомнена процедура може след това да анализира в масив - вижте
string_to_array
)CREATE FUNCTION my_method(TEXT) RETURNS VOID AS $$ DECLARE ids INT[]; BEGIN ids = string_to_array($1,','); ... END $$ LANGUAGE plpgsql;
след това
SELECT my_method(:1)
с :1 =
'1,2,3,4'
-
разчитайте на самия Postgres за прехвърляне от низ към масив
CREATE FUNCTION my_method(INT[]) RETURNS VOID AS $$ ... END $$ LANGUAGE plpgsql;
след това
SELECT my_method('{1,2,3,4}')
-
изберете да не използвате свързващи променливи и вместо това издайте изричен команден низ с всички параметри (уверете се, че сте валидирали или избягвате всички параметри, идващи отвън, за да избегнете атаки с инжектиране на SQL.)
CREATE FUNCTION my_method(INT[]) RETURNS VOID AS $$ ... END $$ LANGUAGE plpgsql;
след това
SELECT my_method(ARRAY [1,2,3,4])