我试图创建一个函数来验证登录成功,如果登录失败,则返回0(零),如果登录成功,则返回1(一个),方法是将cust_id和Passwd匹配为参数,我有两个问题:
。
create or replace function log_in
(
p_cust_id varchar2,
p_paswd varchar2
) return number
as p_all varchar2;
begin
select cust_id,passwd
into p_all
from customer
where cust_id=p_cust_id and passwd=p_paswd;
return 1;
end;
答案 0 :(得分:0)
首先,您尝试选择2列,但改为1个变量。这是不可能的。在下面检查我的修复程序
select cust_id,passwd
into variable1, variable2
from customer
where cust_id=p_cust_id and passwd=p_paswd;
第二项要求,您需要在结束之前添加以下行。
EXCEPTION WHEN NO_DATA_FOUND THEN
return 0;
END;
编辑
您的过程也可以重写为
CREATE OR REPLACE FUNCTION LOG_IN
(
P_CUST_ID VARCHAR2,
P_PASWD VARCHAR2
) RETURN NUMBER
AS P_COUNT NUMBER;
BEGIN
SELECT COUNT(*)
INTO P_COUNT
FROM CUSTOMER
WHERE CUST_ID=P_CUST_ID AND PASSWD=P_PASWD;
IF (P_COUNT > 0)
RETURN 1;
END IF;
RETURN 0;
END;