给员工涨工资,总裁1000,经理800,其他400

来源:互联网 发布:c语言库函数速查手册 编辑:程序博客网 时间:2024/04/27 17:34
--先删除原先的表empdrop table emp;--创建表empcreate 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;/     

0 0
原创粉丝点击