Viz:http://www.postgresql.org/docs/9.1/static/arrays.html
Pokud váš nenativní ovladač stále neumožňuje předávat pole, můžete:
-
předat řetězcovou reprezentaci pole (které může vaše uložená procedura analyzovat do pole – viz
string_to_array
)CREATE FUNCTION my_method(TEXT) RETURNS VOID AS $$ DECLARE ids INT[]; BEGIN ids = string_to_array($1,','); ... END $$ LANGUAGE plpgsql;
pak
SELECT my_method(:1)
s :1 =
'1,2,3,4'
-
spoléhat na samotný Postgres při přetypování z řetězce do pole
CREATE FUNCTION my_method(INT[]) RETURNS VOID AS $$ ... END $$ LANGUAGE plpgsql;
pak
SELECT my_method('{1,2,3,4}')
-
rozhodnout se nepoužívat proměnné vazby a místo toho zadat explicitní příkazový řetězec se všemi parametry (nezapomeňte ověřit nebo opustit všechny parametry přicházející zvenčí, abyste se vyhnuli útokům SQL injection.)
CREATE FUNCTION my_method(INT[]) RETURNS VOID AS $$ ... END $$ LANGUAGE plpgsql;
pak
SELECT my_method(ARRAY [1,2,3,4])