Xem:http://www.postgresql.org/docs/9.1/static/arrays.html
Nếu trình điều khiển không phải gốc của bạn vẫn không cho phép bạn chuyển các mảng, thì bạn có thể:
-
chuyển một biểu diễn chuỗi của một mảng (thủ tục được lưu trữ của bạn sau đó có thể phân tích cú pháp thành một mảng - xem
string_to_array
)CREATE FUNCTION my_method(TEXT) RETURNS VOID AS $$ DECLARE ids INT[]; BEGIN ids = string_to_array($1,','); ... END $$ LANGUAGE plpgsql;
sau đó
SELECT my_method(:1)
với:1 =
'1,2,3,4'
-
dựa vào chính Postgres để truyền từ một chuỗi sang một mảng
CREATE FUNCTION my_method(INT[]) RETURNS VOID AS $$ ... END $$ LANGUAGE plpgsql;
sau đó
SELECT my_method('{1,2,3,4}')
-
chọn không sử dụng các biến liên kết và thay vào đó đưa ra một chuỗi lệnh rõ ràng với tất cả các tham số được viết ra (đảm bảo xác thực hoặc thoát tất cả các tham số đến từ bên ngoài để tránh các cuộc tấn công chèn SQL.)
CREATE FUNCTION my_method(INT[]) RETURNS VOID AS $$ ... END $$ LANGUAGE plpgsql;
sau đó
SELECT my_method(ARRAY [1,2,3,4])