Oracle 数据库 - PL/SQL 编程(二)

目录

流程控制语句

1、选择语句

1)、if ... then 语句

2)、if ... then ... else 语句

3)、if ... then ... elsif 语句

4)、case 语句

2、循环语句

1)、loop 语句

2)、while 语句

3)、for 语句

PL/SQL 异常处理

1、预定义异常

2、自定义异常

1)、错误编号异常

2)、业务逻辑异常


 

流程控制语句

1、选择语句

1)、if ... then 语句

if ... then 语句是选择语句中最简单的一种形式,它只做一种情况或条件判断,其语法格式为:

if < condition_expression > then
plsql_sentence ;
end if ;

--condition_expression : 表示一个条件表达式,当其值为 true 时,程序会进行 if 下面的 PL/SQL 语句(即 plsql_sentence 语句);
如果其值为 false 时,程序会跳过而直接执行 end id 后面的语句。

--plsql_sentence : 当 condition_expression 表达式的值为 true 时,要执行的 PL/SQL 语句。

例:定义两个字符串变量,然后赋值,接着使用 if ... then 语句比较两个字符串变量的长度,并输出比较结果:

上面的例子中写到是一个很明显的比较条件,所以 if 后面的条件表达式的值为 true,这样就会执行 if 下面的 PL/SQL 语句。如果 if 后面的条件表达式存在 “并且”、“或者”、“非” 等逻辑运算,则可以使用 “and”、“or”、“not” 等逻辑运算符。另外,如果要判断 if 后面的条件表达式的值为空值,则需要在条件表达式中使用 “is” 和 “null” 关键字:

if last_name is null then
...;
end if;

 

2)、if ... then ... else 语句

在编写程序的过程中,if ... then ... else 语句是最常用到的一种选择语句,它可以实现判断两种情况,只要 if 后面的条件表达式为 false ,程序就会执行 else 语句下面的 PL/SQL 语句,其语法格式为:

if < condition_expression > then
 plsql_sentence1 ;
else
 plsql_sentence2 ;
end if;

--condition_expression : 表示一个条件表达式,当其值为 true 时,程序会进行 if 下面的 PL/SQL 语句(即 plsql_sentence1 语句);
如果其值为 false 时,程序将执行 else 下面的 PL/SQL 语句(即 plsql_sentence2 语句)。

例:通过 if ... else 语句实现只有年龄大于等于 56 岁才可以申请退休,否则程序会提示不可以申请退休:

 

3)、if ... then ... elsif 语句

if ... then ... elsif 语句实现了多分支判断选择,它使程序的判断选择条件更加丰富,更加多样化,该语句中的哪个判断分支的表达式为 true ,那么程序就会执行其下面对象的 PL/SQL 语句,其语法格式为:

if < condition_expression1 > then
 plsql_sentence_1 ;
elsif < condition_expression2 > then
 plsql_sentence_2 ;
...
else
 plsql_sentence_n ;
end if;



--condition_expression1 : 第一个条件表达式,当其值为 false 时,程序会继续判断condition_expression_2 表达式 ;
--condition_expression2 : 第二个条件表达式,当其值为 false 时,程序会继续判断下面的 elsif 语句后面的表达式;若再没有 elsif 语句,则执行 else 语句下面的 PL/SQL 语句。

--plsql_sentence_1 : 第一个条件表达式的值为 true 时,要执行的 PL/SQL 语句。
--plsql_sentence_2 : 第二个条件表达式的值为 true 时,要执行的 PL/SQL 语句。
--plsql_sentence_n : 当上面的所有条件表达式都为 false 时,要执行的 PL/SQL 语句。

例:指定一个月份数值,然后使用 if ... then .. elsif 语句判断它所属的季节,并输出季节信息ÿ

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值