zoukankan      html  css  js  c++  java
  • Oracle控制结构

    1、IF语句

     2、CASE语句的语法格式:

    CASE [selector]
        WHEN  表达式1   THEN 语句序列1;
        WHEN  表达式2   THEN  语句序列2;
        WHEN  表达式3  THEN   语句序列3;
        ….
       WHEN  表达式n  THEN   语句序列n;
         [ ELSE   语句序列n+1;]
    END [CASE];
    • selector表达式可以任意复杂,可以包含函数的调用,通常只由单个变量组成.
    • selector表达式只计算一次。
    • 表达式产生的值可以是除了BLOB、BFILE、对象类型、PL/SQL记录类型、索引表类型、变长数组类型、嵌套表类型以外的所有类型

    例1:根据ORDERDETAILS表中某产品的总销量分别对其销量进行评定,并输出为优秀、很好、较好、较差、很差

    DECLARE
      TYPE rec_prodquant  IS RECORD
       (v_prod orderdetails.productid%type,
        v_sumquantity orderdetails.quantity%type  );
       rec_prod rec_prodquant; --存放产品编号,总销量的记录类型
      v_jg varchar2(20); --存放优秀、很好、较好、较差、很差等值
    BEGIN
       --查询出某产品的编号和总销量存放到记录变量中
    SELECT productid,sum(quantity)  INTO rec_prod
       FROM orderdetails
       WHERE productid=&no
      group by productid;
      --根据总销量判断其销量的档次
    CASE
        WHEN rec_prod.v_sumquantity>=50 THEN  v_jg:='销量优秀' ;
         WHEN rec_prod.v_sumquantity>=40 THEN  v_jg:='销量很好';
         WHEN rec_prod.v_sumquantity>=30 THEN v_jg:='销量较好' ;
         WHEN rec_prod.v_sumquantity>=10 THEN  v_jg:='销量较差';
         ELSE     v_jg:='销量很差';
     END CASE;
    --输出产品编号、总销量、销量的档次
        dbms_output.put_line(rec_prod.v_prod || '      ' || rec_prod.v_sumquantity ||  '      ' || v_jg);
      END;

     3、LOOP循环

     例2:创建一个测试表,包含列ID,NAME两个列,并向该表插入50条测试记录

    DECLARE
    v_Loop  integer:= 1;
    BEGIN
     LOOP
         INSERT INTO test
         VALUES (v_Loop,‘a’|| v_Loop);
         v_Loop:= v_Loop + 1;
      EXIT WHEN v_Loop > 50;双竖线(||):Oracle使用双竖线表示字符串连接函数
     END LOOP;
    END;

    4、WHILE循环

    while循环是当控制条件为真时,重复执行循环体内的语句;当控制条件不再为真时,终止循环体内的语句执行。

    语法格式:
    WHILE condition
      LOOP
               执行语句段;
    END LOOP;

    例3 向表test_table插入50条测试记录(WHILE循环)

    DECLARE
    v_Loop binary_integer := 1;
    BEGIN
      WHILE V_loop<=50
      LOOP
         INSERT INTO test
         VALUES (v_Loop,‘a’);
         v_loop:=v_loop+1;
      END LOOP;
    END;

    5、FOR循环

    一般用于有限次地重复执行一组语句。其循环次数由计数器来指定。

    语法格式FOR 循环变量 IN [reverse] 循环下界..循环上界
        LOOP
          循环处理语句段;
        END LOOP;

     说明:

    •  循环控制变量不需要在DECLARE中显式定义;系统隐含将它声明为binary_integer变量;
    •  reverse  表示索引变量的值从大到小;
    • 循环变量只能在循环体中使用,不能再循环体外使用。

    例4:向表test_table插入50条测试记录(FOR循环)

    BEGIN
      FOR v_loop IN REVERSE 1..50
      LOOP
         INSERT INTO test_table (ID,NAME)
         VALUES (v_Loop,’a’||v_loop);
      END LOOP;
    END;
  • 相关阅读:
    powerdesigner
    UML类图几种关系的总结(转载 http://blog.csdn.net/tianhai110/article/details/6339565 )
    vuex
    options请求(复杂请求)
    Vue 编程式的导航
    JS定义类
    cors中间件
    vue axios
    restframewor 版本(version)
    pycharm 安装vue
  • 原文地址:https://www.cnblogs.com/CX66/p/14056781.html
Copyright © 2011-2022 走看看