给职工涨工资,总裁1000,经理800,其他400
给员工涨工资,总裁1000,经理800,其他400
--先删除原先的表emp drop table emp; --创建表emp create table emp (ename varchar2(20), empjob varchar2(20), sal number); --select * from emp; --为表输入数据 insert into emp values('smith','clerk',800); insert into emp values('allen','salesman',1600); insert into emp values('ward','salesman',1250); insert into emp values('jones','manager',3440); insert into emp values('king','persident',5000); --给员工涨工资,总裁1000,经理800,其他400 --set serveroutput on --修改表中某条记录的值:update emp set empno=4 where ename='jones'; declare --定义游标。这个cemp就是保存多个变量的值的,相当于一个集合 CURSOR cemp is select empno,empjob from emp; --定义变量 pempno emp.empno%type; pjob emp.empjob%type; begin --打开光标 open cemp; --循环游标中的值,给变量赋值 loop --取出一个员工依据员工号对应一个员工 fetch cemp into pempno,pjob; --退出,当满足这个条件的时候退出 exit when cemp%notfound; --开始判断员工的职位 if pjob='PRESIDENT' then update emp set sal=sal+1000 where empno=pempno; else if pjob='MANAGER' then update emp set sal=sal+800 where empno=pempno; else update emp set sal=sal+400 where empno=pempno; end if; END LOOP; --关闭光标 close cemp; --oracle数据库默认是开启事务的 --对于oracle,默认的事务隔离级别是read committed --提交所修改的东西 commit; dbms_output.put_line('涨工资完成'); end; /
版权声明:本文为博主原创文章,未经博主允许不得转载。