Zie:http://www.postgresql.org/docs/9.1/static/arrays.html
Als uw niet-native driver u nog steeds niet toestaat arrays door te geven, kunt u:
-
geef een tekenreeksrepresentatie door van een array (die uw opgeslagen procedure vervolgens in een array kan ontleden -- zie
string_to_array
)CREATE FUNCTION my_method(TEXT) RETURNS VOID AS $$ DECLARE ids INT[]; BEGIN ids = string_to_array($1,','); ... END $$ LANGUAGE plpgsql;
dan
SELECT my_method(:1)
met :1 =
'1,2,3,4'
-
vertrouw op Postgres zelf om van een string naar een array te casten
CREATE FUNCTION my_method(INT[]) RETURNS VOID AS $$ ... END $$ LANGUAGE plpgsql;
dan
SELECT my_method('{1,2,3,4}')
-
kies ervoor om geen bindvariabelen te gebruiken en geef in plaats daarvan een expliciete opdrachtreeks op waarin alle parameters zijn gespeld (zorg ervoor dat u alle parameters die van buitenaf komen valideert of ontsnap om SQL-injectieaanvallen te voorkomen.)
CREATE FUNCTION my_method(INT[]) RETURNS VOID AS $$ ... END $$ LANGUAGE plpgsql;
dan
SELECT my_method(ARRAY [1,2,3,4])