Se:http://www.postgresql.org/docs/9.1/static/arrays.html
Hvis din ikke-native driver stadig ikke tillader dig at passere arrays, så kan du:
-
videregive en strengrepræsentation af et array (som din lagrede procedure derefter kan parse til et array -- se
string_to_array
)CREATE FUNCTION my_method(TEXT) RETURNS VOID AS $$ DECLARE ids INT[]; BEGIN ids = string_to_array($1,','); ... END $$ LANGUAGE plpgsql;
derefter
SELECT my_method(:1)
med :1 =
'1,2,3,4'
-
stole på, at Postgres selv kan kaste fra en streng til en matrix
CREATE FUNCTION my_method(INT[]) RETURNS VOID AS $$ ... END $$ LANGUAGE plpgsql;
derefter
SELECT my_method('{1,2,3,4}')
-
vælg ikke at bruge bindevariabler og udstede en eksplicit kommandostreng med alle parametre stavet i stedet (sørg for at validere eller undslippe alle parametre, der kommer udefra for at undgå SQL-injektionsangreb).
CREATE FUNCTION my_method(INT[]) RETURNS VOID AS $$ ... END $$ LANGUAGE plpgsql;
derefter
SELECT my_method(ARRAY [1,2,3,4])