zoukankan      html  css  js  c++  java
  • oracle 控制语句

    PL输出语句

    set serverout on; -- 开启PL的输出语句功能
    declare

    n number:=1; -- 声明一个number型的变量n,并赋值为1
    v varchar2(20):='world'; -- 声明一个varchar2类型的变量v 赋值为“world”
    begin -- 控制语句书写在 begin      --     end 之间
    dbms_output.put_line('hello'||n||v); -- 输出语句,数据连接使用‘||’
    end;

    if条件语句
    set serverout on;
    declare emp_count number;
    begin
    select count(*) into emp_count from emp where sal>=3000;
    if emp_count>0 then
    dbms_output.put_line('有'||emp_count||'个员工的基本薪资大于等于3000');
    else
    dbms_output.put_line('没有员工的基本薪资大于等于3000');
    end if;
    end;

    赋值语句
    set serverout on;
    declare emp_count number;
    begin
    select count(*) into emp_count from emp where sal>=3000;  --  查询出数据并赋值给 emp_count
    if emp_count=1 then
    dbms_output.put_line('有1个员工的基本薪资大于等于3000');
    else if emp_count>1 then
    dbms_output.put_line('有超过1个员工的基本薪资大于等于3000');
    else
    dbms_output.put_line('没有员工的基本薪资大于等于3000');
    end if;
    end if;
    end;

    case when 流程控制语句

    set serverout on;
    declare emp_count number;
    begin
    select count(*) into emp_count from emp where sal>=3000;
    case emp_count
    when 0 then dbms_output.put_line('没有员工的基本薪资大于等于3000');
    when 1 then dbms_output.put_line('有1个员工的基本薪资大于等于3000');
    when 2 then dbms_output.put_line('有2个员工的基本薪资大于等于3000');
    when 3 then dbms_output.put_line('有3个员工的基本薪资大于等于3000');
    else dbms_output.put_line('超过3个员工的基本薪资大于等于3000');
    end case;
    end;

    无条件循环 loop

    set serverout on;
    declare g_id number:=2;
    g_losal number;
    g_hisal number;
    begin
    loop
    if(g_id>4) then
    exit;
    end if;

    select losal,hisal into g_losal,g_hisal from salgrade where grade=g_id;
    dbms_output.put_line(g_id || '等级的最低薪资'|| g_losal || ',最高薪资:' || g_hisal);

    g_id:=g_id+1;

    end loop;
    end;

    while 循环
    set serverout on;
    declare g_id number:=2;
    g_losal number;
    g_hisal number;
    begin

    while g_id<5 loop

    select losal,hisal into g_losal,g_hisal from salgrade where grade=g_id;
    dbms_output.put_line(g_id || '等级的最低薪资'|| g_losal || ',最高薪资:' || g_hisal);
    g_id:=g_id+1;
    end loop;

    end;

    for 循环
    set serverout on;
    declare g_losal number;
    g_hisal number;
    begin
    for g_id in 2..4 loop
    select losal,hisal into g_losal,g_hisal from salgrade where grade=g_id;
    dbms_output.put_line(g_id || '等级的最低薪资'|| g_losal || ',最高薪资:' || g_hisal);
    end loop;
    end;

  • 相关阅读:
    vim介绍 & vim颜色显示和移动光标& vim一般模式下移动光标 & vim一般模式下复制、剪切和粘贴
    lvm 详解 磁盘故障小案例
    磁盘格式化、磁盘挂载、手动增加swap空间
    df du 磁盘分区
    su sudo 限制root远程登录
    usermod 用户密码管理 mkpasswd
    顺序查找,二分法查找,插值查找算法实现及分析
    完全二叉树的构建及三种遍历
    Mybatis由于类型转换出现的问题
    delimiter解释
  • 原文地址:https://www.cnblogs.com/getchen/p/8422988.html
Copyright © 2011-2022 走看看