1)从emp表中查询指定员工的工资,并判断该员工的工资是否低于2000。如果条件成立,那么该员工的工资增加200。(单分支if)
declare
num_sal number;
begin
select sal into num_sal from emp where empno=7902;
if num_sal<2000 then
update emp set sal = sal+200 where empno = 7902;
end if;
end;
/
2)根据给定的职工编号从emp表中查询该职工的奖金(comm字段的值),如果奖金的值不为0,那么将表中该职工的奖金增加200,否则(即comm为0或null)将该职工的奖金设置为100。(双分支if)
本题"奖金的值不为0"的判断,因为comm有空值null字段,需要使用nvl函数.
nvl(表达式1,表达式2):如果表达式1为空值,nvl返回值为表达式2的值,否则返回表达式1的值。该函数的目的就是将null值转换成具体值.
declare
num_comm number;
d number:=&员工编号;
begin
select comm into num_comm from emp where empno=d;
if num_comm is not null then
update emp set comm = comm+200 where empno = d;
else
update emp set comm=100 where empno = d