为某部门(需指定)的人员涨薪100,如果是公司总裁,则不涨薪。
delimiter //
create procedure high_sal(in dept_name varchar(32))
begin
declare e_no int;
declare e_name varchar(32);
declare s_sal decimal(7,2);
declare lp_flag boolean default true;
declare emp_cursor cursor for
select e.empno,e.ename,e.sal
from emp e,dept d
where e.deptno = d.deptno and d.dname = dept_name;
declare continue handler for NOT FOUND set lp_flag = false;
open emp_cursor ;
emp_loop:loop
fetch emp_cursor into e_no,e_name,e_sal;
if lp_flag then
if e_name = 'king' then
iterate emp_loop;
else
update emp e set e.sal + 100 where e.empno = e_no;
end if;
else
leave emp_loop;
end if;
end loop emp_loop;
set @end_flag = 'exit_flag';
close emp_cursor ;
end //



