PL/SQL 提供了IF-ELSE-END IF语句来处理分支:
如下
----使用分支结构为员工加薪
declare
----定义加薪比例
c_manager constant number := 0.15;
c_salesman constant number := 0.12;
c_clerk constant number := 0.10;
--定义职位变量
v_job varchar(100);
begin
--查询指定员工编码的员工信息
select job into v_job from scott.emp where empno = &empno1;
--执行分支判断
if v_job = 'clerk'
then
update scott.emp set sal = sal * (1 + c_clerk) where empno = &empno1;
elsif v_job = 'salesman'
then
update scott.emp set sal = sal * (1 + c_salesman) where empno = &empno1;
elsif v_job = 'manager'
then
update scott.emp set sal = sal * (1 + c_manager) where empno = &empno1;
end if;
dbms_output.put_line('已经为员工'||&empno1||'成功加薪!');
exception
when no_data_found
then
dbms_output.put_line('没有找到员工数据');
end;