Trong bài đăng này, tôi đang chia sẻ phần trình diễn Cách chuyển mảng chuỗi làm tham số đầu vào trong hàm được lưu trữ của PostgreSQL.
Chúng tôi đã sử dụng một cách tiếp cận khác để chuyển nhiều giá trị dưới dạng một tham số đầu vào như được phân tách bằng dấu phẩy, Tham số XML, Loại bảng.
Bạn cũng có thể tìm thấy một loại nữa là một mảng của PostgreSQL.
Tôi đã tạo một hàm được lưu trữ cho cuộc trình diễn này.
Trong phần bên dưới, hàm được lưu trữ mà tôi đã khai báo một tham số đầu vào là một mảng chuỗi và sử dụng cho..vòng lặp Tôi đang tìm nạp bản ghi từ mảng này và lưu trữ vào một bảng tạm thời.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | CREATE OR REPLACE FUNCTION fn_PostgresArray ( ArrayText character varying[] ) RETURNS TABLE (outArrayTextData CHARACTER VARYING(250)) AS $BODY$ DECLARE Counter INT = 0 ; BEGIN CREATE TEMP TABLE ArrayData(ArrayTextData CHARACTER VARYING(250)); FOR Counter in array_lower(ArrayText, 1) .. array_upper(ArrayText, 1) LOOP INSERT INTO ArrayData VALUES(ArrayText[Counter]); END LOOP; RETURN QUERY SELECT ArrayTextData FROM ArrayData; DISCARD TEMP; END; $BODY$ LANGUAGE plpgsql VOLATILE COST 100; |
1 | SELECT *FROM fn_PostgresArray(ARRAY['Apple', 'Orange', 'Mango']); |