我写的oracle中的一个存储过程,请高手帮忙看看问题出在哪。 题目是这样的: 创建一个存储过程,存储过程名为p_login,用于操作用户登录的校验,登录需要使用EMPNO和EMPPASS,并需要提示登录中的错误,如是EMPNO不存在,还是EMPNO存在EMPPASS错误,还是其他错误等。 要求: 1)不同的输出状态用不同的输出编号标识(out_code)如EMPNO存在且密码正确out_code=0,EMPNO不存在此类错误的out_code=1,用户名存在密码错误out_code=2,其他错误out_code=3 2)不同的输出状态对应不同的输出描述或提示,输出描述用out_desc标识 3)存储过程运行结束要把输出状态对应的输出标识(out_code)和输出描述(out_desc)输出。 以下是我写的脚本: create or replace procedure p_login ( NO IN number, PASS IN nvarchar2, out_code OUT number, out_desc OUT nvarchar2) is count1 number(10) vcount number(10) other EXCEPTION begin select ID into count1 from EMP where EMPNO= NO select ID into vcount from EMP where EMPPASS= PASS and EMP.ID = count1 if (count1 is not null and vcount is not null) then out_code:=0 out_desc:= '登录成功' elsif (count1 is Null and vcount is Null) then out_code:=1 out_desc:= 'EMPNO不存在' elsif (count1 is not Null and vcount is Null) then out_code:=2 out_desc:= '密码错误' else out_code:=3 out_desc:= '其他错误' end if dbms_output.put_line(out_code||out_desc) end p_login 运行的时候会有错。主要原因是:在oracle中,只要某个参数为空的话 那么系统就报错了。。。这种情况应该怎么处理呢?貌似用IS NULL没用啊?