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;

  • 相关阅读:
    神经网络层数问题
    matlab入门笔记(六):编程基础之M文件
    工字电感,色环电感,功率电感选型区别
    x电容和Y电容
    nohup.out文件过大解决方法 定时任务清空
    WebRTC的视频解码原理简析
    activemq 安装 部署
    WebRTC信令控制简介与STUN, TURN服务器搭建
    如何搭建WebRTC信令服务器
    ZooKeeper安装和配置
  • 原文地址:https://www.cnblogs.com/getchen/p/8422988.html
Copyright © 2011-2022 走看看