zoukankan      html  css  js  c++  java
  • Oracle PL/SQL 程序设计读书笔记 第4章 条件和顺序控制

    Oracle PL/SQL 程序设计读书笔记 - 第4章 条件和顺序控制

    Oracle PL/SQL 程序设计读书笔记 - 第4章 条件和顺序控制

    4.1 IF语句

    • IF THEN END IF;

    这是IF语句最简单的用法。IF和THEN之间的条件决定了在THEN和END IF之间的一系列语句是否会被执行。如果条件部分的求值结果是FALSE或者NULL,这些代码就不会执行。

    IF condition
    THEN
       
    ....
    END IF;
    • IF THEN ELSE END IF;

    这种组合形式的IF语句实现了二选一的逻辑。根据对位于IF和THEN两个关键字之间的条件的求值结果,或者是THEN和ELSE之间的代码被执行,或者是ELSE和END IF之间的代码被执行。总之,这两部分代码肯定有一个会被执行。

    IF condition
    THEN
       
    ... TRUE sequence of executable statements ...
    ELSE
       
    ... FALSE/NULL sequence of executable statements ...
    END IF;
    • IF THEN ELSEIF ELSE END IF;

    这是IF语句最后一个也是最复杂的使用形式。IF语句会从一系列互斥条件中选择一个是TRUE的,然后执行该条件关联的语句。如果是在Oracle 9i Database Release1之后的版本中使用这样的IF语句,你应该考虑使用CASE语句。

    IF condition-1
    THEN
       statements
    -1
    ELSEIF condition
    -N
    THEN
       statements
    -N
    [ELSE
       else_statements
    ]
    END IF;

    4.1.4 避免IF语法的陷阱

    • 一个IF总要有一个匹配的END IF
    • 在关键字END和IF之间必须有空格
    • 关键字ELSIF不要夹带"E"
    • 只在关键字END IF后使用分号(;)

    4.1.6 短路求值

    PL/SQL使用短路求值方法,也就是说PL/SQL不需要对一个IF语句中的所有表达式都去求值。

    4.2 CASE语句和表达式

    • 简单的CASE语句

    通过值来关联一个或者多个PL/SQL语句,根据表达式的返回值来选择哪一个语句被执行。

    CASE expression
    WHEN result1 THEN
       statements1
    WHEN result2 THEN
       statements2
    ...
    ELSE
       statements_else
    END CASE;

    这个CASE语句明确地使用了ELSE子句,不过ELSE语句是可选的。如果你没有明确地指定自己的ELSE子句,PL/SQL会隐含地使用下面的方法:

    ELSE
       RAISE CASE_NOT_FOUND
    ;
    • 搜索形式的CASE语句

    根据一系列布尔条件来确定要执行的PL/SQL语句系列。那些和第一个求值结果是TRUE的条件相关联的语句会被执行。

    CASE 
    WHEN expression1 THEN
       statements1
    WHEN expression2 THEN
       statements2
    ...
    ELSE
       statements_else
    END CASE;

    一旦某些语句被执行,整个执行也就结束了。即便有多个表达式求值结果都是TRUE,也只有和第一个表达式关联的语句会被执行。

    ELSE语句是可选的,如果没有指定ELSE,并且没有一个表达式的求值结果是TRUE,就会抛出CASENOTFOUND异常

    WHEN表达式是按照从上到下的顺序被依次求值。

    4.2.4 CASE表达式

    • 简单的CASE表达式

    例如:

    x:=
    CASE expression
    WHEN result1 THEN
       result_expression1
    WHEN result2 THEN
       result_expression2
    ...
    ELSE
       result_expression_else
    END;
    • 搜索形式的CASE表达式

    例如:

    x:=
    CASE
    WHEN expression1 THEN
       result_expression1
    WHEN expression2 THEN
       result_expression2
    ...
    ELSE
       result_expression_else
    END;

    4.3 GOTO语句

    GOT语句的常见格式:

    GOTO label_name

    GOTO语句有一些限制需要注意

    • 一个标签后面至少有跟着一个可执行语句
    • GOTO语句的目标标签必须和GOTO语句在同一个作用域内
    • GOTO语句的目标标签必须和GOTO语句在PL/SQL代码块的相同部分

    4.4 NULL语句

    NULL语句的语法格式如下:

    NULL;
  • 相关阅读:
    layer-list:Android中layer-list使用详解
    Nexus6p:正在下载系统更新,没有进度
    转:浅谈char类型范围
    C/C++/Java中的volatile关键字
    C++中的mutable关键字
    C++中的typedef typename 作用
    C++中的友元函数和友元类
    用flashfxp做ftp镜像同步
    python读取caffemodel文件
    py-faster-rcnn几个辅助脚本
  • 原文地址:https://www.cnblogs.com/tjpanda88/p/2243806.html
Copyright © 2011-2022 走看看