PL/SQL程序设计流程控制

Posted 云上咖啡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PL/SQL程序设计流程控制相关的知识,希望对你有一定的参考价值。

PL/SQL是 Procedure Language & Structured Query Language 的缩写


PL/SQL是对SQL语言存储过程语言的扩展

PL/SQL程序由三个块组成,即声明部分执行部分异常处理部分

在语句块的声明部分对变量声明,声明一个变量的语法是:
variable_name [ constant ] type [ not null ] [:=value]
其中:
variable_name 为变量名
type 为类型
value 为变量的初值


PL/SQL结构
DECLARE
/* 声明部分: 在此声明PL/SQL用到的变量,类型及游标,以及局部的存储过程和函数 */
BEGIN
/* 执行部分: 过程及SQL 语句 , 即程序的主要部分 */
EXCEPTION
/* 执行异常部分: 错误处理 */
END;

PL/SQL的流程控制语句, 包括如下三类 :
条件语句: IF 语句 CASE语句
循环语句: LOOP语句, EXIT语句
顺序语句: GOTO语句, NULL语句

IF语句的基本形式为 :
IF <布尔表达式> THEN
PL/SQL 和 SQL语句
END IF;

IF <布尔表达式> THEN
PL/SQL 和 SQL语句
ELSE
其它语句
END IF;

IF语句的复杂形式为 :
IF <布尔表达式> THEN
PL/SQL 和 SQL语句
ELSIF < 其它布尔表达式> THEN
其它语句
ELSIF < 其它布尔表达式> THEN
其它语句
…… ……
ELSE
其它语句
END IF;

CASE语句的基本形式为 :
CASE selector
WHEN expression1 THEN result1
WHEN expression2 THEN result2
WHEN expressionN THEN resultN
[ ELSE resultN+1]
END CASE;

循环语句
简单循环语句的一般形式:
LOOP
要执行的语句;
EXIT WHEN <条件语句> /*条件满足,退出循环语句*/
END LOOP;
其中:EXIT WHEN 子句是必须的,否则循环将无法停止。

WHILE 循环语句的一般形式:
WHILE <布尔表达式> LOOP
要执行的语句;
END LOOP;

FOR循环语句的一般形式:
FOR 循环计数器 IN [ REVERSE ] 下限 .. 上限 LOOP
要执行的语句;
END LOOP;
其中:
每循环一次,循环变量自动加1;使用关键字REVERSE,循环变量自动减1
跟在IN REVERSE 后面的数字必须是从小到大的顺序,但不一定是整数,可以是能够转换成整数的变量或表达式
可以使用EXIT WHEN子句退出循环

 综合实例:

 1 declare
 2 v_no number(4) :=7369;      --声明并初始化变量
 3 begin
 4 select sal into v_no from emp where empno=v_no;
 5 
 6 if v_no>300 then v_no:=100; --if--then
 7 end if;
 8 
 9 while v_no<=200             --while
10   loop
11     v_no := v_no+1;
12      dbms_output.put_line(v_no);
13   end loop;
14 
15 for v_no in reverse 0 .. 200--for
16 loop                        --loop
17   
18  dbms_output.put_line(v_no); 
19 
20 end loop;
21 end;

 



























































以上是关于PL/SQL程序设计流程控制的主要内容,如果未能解决你的问题,请参考以下文章

Oracle之PL/SQL编程_流程控制语句

oracle-PL/SQL1

oracle数据库之PL/SQL 流程控制语句

pl/sql 流程控制语句

PL/SQL 03 流程控制

PL/SQL流程控制