大虾:帮我写一下这个 oracle存储过程

来源:百度知道 编辑:UC知道 时间:2024/05/16 20:32:30
这个存储过程实现的是:登录验证

1.程序签名

procedure LogValidate(v_ename employee.logName%type,v_password employee.passWord%type,v_result out boolean)

2.功能
验证用户登录是否合法

3.参数

IN:
v_ename :验证用户的登录名
v_password : 验证用户的登录密码

OUT:
v_result : 验证结果,如果准许用户登录则该值为true。否则为false。

-------------------------------------------------------------
补充几点:

1、讲讲oracle存储过程的原理?
2.存储过程详细语法及其解释
3.in参数和out参数到底是做什么的,该怎么使用?

你这里应该使用函数而非存储过程,因为你要求有布尔型的返回值。原理不太好讲,你可以百度一下存储子程序,out的作用就是让实际参数值被忽略,形参当一般变量用。
CREATE OR REPLACE FUNCTION LogValidate(
v_ename employee.logName%type,
v_password employee.passWord%type
v_orange OUT employee.passWord%type)
RETURN BOOLEAN
AS
v_result BOOLEAN;
BEGIN
SELECT passWord INTO v_orange FROM employee WHERE logName=v_ename;
IF v_orange=v_password THEN v_result:=true;
ELSE v_result:=false;
RETURN v_result;
EXCEPTION
WHEN NO_DATA_FOUND THEN v_result:=false;
RETURN v_result;
END LogValidate;