Zobacz:http://www.postgresql.org/docs/9.1/static/arrays.html
Jeśli Twój nienatywny sterownik nadal nie pozwala na przekazywanie tablic, możesz:
-
przekazać ciąg reprezentujący tablicę (którą twoja procedura składowana może następnie przetworzyć na tablicę — zobacz
string_to_array
)CREATE FUNCTION my_method(TEXT) RETURNS VOID AS $$ DECLARE ids INT[]; BEGIN ids = string_to_array($1,','); ... END $$ LANGUAGE plpgsql;
wtedy
SELECT my_method(:1)
z :1 =
'1,2,3,4'
-
polegać na samym Postgresie, aby rzutować z łańcucha na tablicę
CREATE FUNCTION my_method(INT[]) RETURNS VOID AS $$ ... END $$ LANGUAGE plpgsql;
wtedy
SELECT my_method('{1,2,3,4}')
-
zdecyduj się nie używać zmiennych wiązania i zamiast tego wydaj jawny ciąg poleceń ze wszystkimi parametrami określonymi (upewnij się, że wszystkie parametry przychodzące z zewnątrz są sprawdzane lub pomijane, aby uniknąć ataków wstrzykiwania SQL).
CREATE FUNCTION my_method(INT[]) RETURNS VOID AS $$ ... END $$ LANGUAGE plpgsql;
wtedy
SELECT my_method(ARRAY [1,2,3,4])