Я пытаюсь создать следующую функцию в Postgresqlневерный входной синтаксис для логического типа, если условие
CREATE OR REPLACE FUNCTION emat_proc_ad_user_login(user_id_in character varying, password_in character varying)
RETURNS character varying AS
$BODY$
declare
TESTING character varying(200):='';
BEGIN
raise notice 'before if case';
IF (USER_ID_IN is NULL AND PASSWORD_IN IS NULL) THEN
TESTING:='Username Or Password Cannot Be Blank';
RAISE NOTICE '%',TESTING;
ELSIF (SELECT USER_ID FROM AD_USERMASTER WHERE USER_ID=USER_ID_IN) THEN
IF (SELECT USER_ID FROM AD_USERMASTER WHERE password=password_in) THEN
TESTING:=USER_ID_IN;
RAISE NOTICE '%',TESTING;
ELSE
TESTING:='PASSWORD INCORRECT';
END IF;
ELSE
IF (SELECT USER_ID FROM AD_USERMASTER WHERE password=password_in) THEN
TESTING:='USER ID INCORRECT';
RAISE NOTICE '%',TESTING;
ELSE
raise notice 'first else part';
TESTING:='USER ID AND PASSWORD INCORRECT';
RAISE NOTICE '%',TESTING;
END IF;
END IF;
return TESTING;
END;
$BODY$
в то время как запустить этот скрипт в PostgreSQL он показывает ошибку
ERROR: invalid input syntax for type boolean: "sadmin"
КОНТЕКСТ: PL/pgSQL emat_proc_ad_user_login (символ различный, изменяющийся символ) строка 7 при IF
Вы могли послать какой набор параметров сделает вашу функцию аварии – jlandercy
ВЫБЕРИТЕ emat_proc_ad_user_login ( «sadmin ',' admin ' ); и SELECT emat_proc_ad_user_login ( 'sjh', 'sdnj' ); –