Vấn đề là gọi hàm với các đối số nhưng không chỉ định bất kỳ khi tạo hàm. Vì vậy, bạn cần một cái gì đó như (không được thử nghiệm):
CREATE FUNCTION "UpdatePMPM"(nbr_mem_months integer, effectivdate date, some_arg varchar) RETURNS void
LANGUAGE plpgsql
AS
$$
DECLARE
ym varchar := to_char(effectivedate,'YYYYMM');
BEGIN
FOR r IN 1..nbr_mem_months LOOP
UPDATE elan.pmpm set mbrmonths = mbrmonths+1 where yyyyymm = ym;
effectivedate = effectivedate + interval '1 month';
ym=to_char(effectivedate,'YYYYMM');
END LOOP;
RETURN;
END
$$;
Do lỗi, không rõ đối số thứ ba được cho là gì, vì vậy bạn sẽ được giải thích rõ.