Chuyển một mảng chữ thay vì một phương thức khởi tạo mảng. Giá trị có thể được chuyển dưới dạng chuỗi ký tự , sau đó nó được buộc phải chuyển sang đúng loại bởi Postgres:
SELECT some_updates('{"(488, 2019-07-01 00:00:00,342)"}');
Điều kiện tiên quyết:hàm không bị "quá tải" để độ phân giải kiểu hàm rõ ràng với đầu vào không định kiểu.
Có liên quan:
- Cách chuyển mảng kiểu tùy chỉnh vào hàm Postgres
- Truyền mảng loại tùy chỉnh cho hàm postgres từ node-pg và SQL injection
- Có cách nào để tắt chức năng quá tải trong Postgres
Nếu bạn có ít hơn 100 phần tử mảng, một VARIADIC
hàm sẽ giúp đơn giản hóa việc chuyển đối số:
CREATE FUNCTION some_updates(VARIADIC t test[]) ...
Sau đó chuyển các ký tự hàng như:
SELECT some_updates('(488, 2019-07-01 00:00:00,342)'
, '(489, 2019-07-02 00:00:00,343)')
Xem:
Nếu bạn có (nhiều) hàng cần vượt qua, hãy cân nhắc ghi chúng vào bảng (tạm thời) với INSERT
đơn giản và xử lý chúng từ đó.