编写VALIDATE_EMP函数实现Oracle Employee表员工存在性校验
VALIDATE_EMP 函数问题排查与修复方案
原代码存在的问题
- 变量声明语法错误:
lv_count number末尾缺少分号;,不符合PL/SQL语法规范 - 表名与字段名不匹配:样例提供的表为
Employees,主键字段为emp_id,原代码错误引用了hr.employees表和不存在的employee_id字段 - 逻辑判断错误:需求是员工存在就返回
TRUE,只要记录数≥1就满足条件,原代码错误设置判断条件为lv_count>1,会导致只有重复员工记录时才返回真 - 流程控制块未闭合:
IF判断块缺少对应的END IF语句,会触发语法编译错误
正确可运行实现
样例表初始化代码
create table Employees (emp_id number, emp_name varchar2(50), salary number, department_id number) ; insert into Employees values(1,'ALex',10000,10); insert into Employees values(2,'Duplex',20000,20); insert into Employees values(3,'Charles',30000,30); insert into Employees values(4,'Demon',40000,40);
VALIDATE_EMP 函数代码
create or replace function validate_emp(empno in number) return boolean is lv_count number; begin select count(emp_id) into lv_count from Employees where emp_id = empno; if lv_count >= 1 then return true; else return false; end if; end validate_emp; /
调用验证:输入员工编号1时返回
TRUE,输入不存在的编号99时返回FALSE,完全符合需求预期。
内容的提问来源于stack exchange,提问作者AlbertAlex
相关产品推荐
相关产品推荐

