您的位置:首页 > 数据库 > Oracle

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

2011-11-10 00:10 363 查看
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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: