oracle plsql 中的循环实例

来源:互联网 发布:老男孩 linux视频教程 编辑:程序博客网 时间:2024/04/28 04:21
 
--输入一个用户如果工资小于2000则加10%否则不加create or replace procedure sp_pro6(spName varchar2) is--定义v_sal emp.sal%type;begin  select sal into v_sal from emp where ename=spName;  if v_sal<200 then     update emp set sal=sal*1.1 where ename=spName;    end if;    end;    --输入一个名字,如果该员工补助不是0就在原来的基础上加100;--如果补助为0就设成200create or replace procedure sp_pro7(spName varchar2) isv_comm emp.comm%type;begin  select comm into v_comm from emp where ename=spName;  if v_comm<>0 then    update emp set comm=comm+100 where ename=spName;    else      update emp set comm=comm+200 where ename=spName;      end if;      end;          --写一个过程输入一个员工编号 如果职位是president 工资+100--manager +500 其它员工+200create or replace procedure sp_pro8(spNo number) isv_job emp.job%type;begin  select job into v_job from emp where empno=spNo;  if v_job='PRESIDENT' then    update emp set sal=sal+1000 where empno=spNo;    elsif v_job='MANAGER' then    update emp set sal=sal+500 where empno=spNo;    else      update emp set sal=sal+200 where empno=spNo;      end if;      end;              --for循环10次向users表插入10条记录create table users1(userNo number,spName varchar2(40));create or replace procedure sp_pro9(spName varchar2) is--定义:=表示赋值v_num number:=1;begin  loop     insert into users1 values(v_num,spName);     --判断是否要退出循环,v_num=10是给等于     exit when v_num=10;     --自增     v_num:=v_num+1;  end loop;  end;  --调用过程  exec sp_pro9('种田的');--while 循环编号从11开始create or replace procedure sp_pro10(spName varchar2) is--定义:=表示赋值v_num number:=11;begin  while v_num<=20  loop    insert into users1 values(v_num,spName);     --自增     v_num:=v_num+1;  end loop;  end;  --调用过程  exec sp_pro10('我的父亲');

原创粉丝点击