Вы определили последний параметр как параметр OUT, это означает, что вы не можете передать значение для него.
Вам необходимо использовать:
select loginattempt ('Jon.Jones88@gmail.com','+_@kjhfdb987', now());
Поскольку вы не записываете в параметр attempts
Я не вижу причины для определения его как параметра out для начала.Вы можете просто вернуть значение, если оно вам необходимо:
create or replace function loginAttempt (u_email character varying, u_password character varying, u_date_time timestamptz, u_attempt smallint)
returns smallint
AS $$
BEGIN
INSERT INTO login_attempts (typed_password, date_time, attempt_nu, email)
VALUES (u_password, u_date_time, u_attempt, u_email);
IF u_attempt = 3 THEN
INSERT INTO warnings (u_email,u_password) VALUES (u_email,u_password);
END IF;
return u_attempt;
END;
$$ LANGUAGE plpgsql;
Поскольку предполагается, что значение 1
является целым числом, вам необходимо привести это значение при вызове функции:
select loginattempt ('Jon.Jones88@gmail.com','+_@kjhfdb987', now(), 1::smallint);
Онлайн пример: https://rextester.com/YNIQ55561