【发布时间】:2017-01-09 07:17:44
【问题描述】:
我正在尝试在 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
【问题讨论】:
-
你能发送哪些参数使你的函数崩溃
-
选择 emat_proc_ad_user_login('sadmin','admin');和 SELECT emat_proc_ad_user_login('sjh','sdnj');
标签: postgresql