• 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;
  • 相关阅读:
    linux中awk的基础学习
    opencv460在win10+vs2017上的编译
    基于yolo进行目标检测的实验和研究
    对OpenCV中3种乘法操作的理解掌握
    深度学习三件套 Ubuntu 20.04 安装 NVIDIA 驱动 CUDA cuDNN全流程【比较好用,jsxyhelu修改】
    基于yolo进行目标检测的实验和研究
    sql server/如何根据条件查找重复的数据行集合
    SQL Server 数据库如何实现每日自动备份功能(包括自动删除)
    WebForm中的treeView的简单使用
    sql server 我们在做游标循环时,如何处理in里面多个id值的参数
  • 原文地址:https://www.cnblogs.com/dongzhuangdian/p/5798183.html
Copyright © 2020-2023  润新知