zoukankan      html  css  js  c++  java
  • oracle的控制语句if和循环语句loop while for

    pl/sql的控制结构
    if-then if-then-else if-then-elsif-else

    案例1:编写一个过程,可以输入一个雇员名,如果该雇员的工资低于2000,就给该雇员工资增加10%

    create or replace procedure mypro(spName varchar2) is 
    v_sal emp.sal%type
    begin
    select sal into v_sal from emp where ename = spName
    if v_sal <2000 then 
    update emp set sal = sal*1.1 where ename = spName 
    end if;
    end;

    案例2 编写一个过程,可以输入一个雇员名,如果该雇员的补助不是0就在原来的基础上加100,如果为0则改为200

    create or replace procedure mypro(spName varchar2) is 
    v_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;

    案例3:编写一个过程,可以输入一个雇员编号人,如果该雇员的职位是president就给他的工资增加1000,如果该雇员
    的职位是manager就给他的工资增加500,其他职位的雇员工资增加200.

    create or replace procedure mypro(spName number) is
    v_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;

    pl/sql循环语句

    loop是最简单的循环语句,这种循环语句以loop开头,以end loop结尾,这种循环至少会被执行一次
    案例1 现在有一张表,表结构为用户id和用户名

    create or replace procedure mypro(spName varchar2) is
    v_num number:=1;
    begin 
    loop
    insert into users values(v_num,spName);
    --判断是否要退出循环
    exit when v_num=10;
    v_num:=v_num+1;
    end loop;
    end;

    while循环,至少要执行循环体一次,而对于while循环来说,只有条件为true时,才会执行循环语句

    create or replace procedure mypro(spName varchar2) is
    v_num number:=11;
    begin 
    while v_num <= 20 loop
    insert into users values(v_num,spName);
    v_num:=v_num+1;
    end loop;
    end;

    循环语句-for循环

    begin
    --只能按照1的步长不断增加
    for i in reverse 1..10 loop
    insert into users values(i,'hh');
    end loop;
    end;
  • 相关阅读:
    设置ActiveMQ的访问密码
    Java NIO SocketChannel套接字通道
    Java 8 基础API的一些小的该进
    Java 8 异常该进
    Java NIO Channel to Channel Transfers通道传输接口
    Java NIO Scatter / Gather
    mysql分表经验总结
    Java 8 Optional类深度解析(转)
    Java 8 文件操作(转)
    使用 Java8 Optional 的正确姿势(转)
  • 原文地址:https://www.cnblogs.com/dongzhuangdian/p/5798183.html
Copyright © 2011-2022 走看看