# 所教授Oracle课程总结(5)——PL/SQL中的逻辑控制代码

PL/SQL中的逻辑控制代码与java类似，同样也有条件判断和循环结构。

1. IF...ELSE
IF...ELSE的基本结构如下：

 IF condition THEN     --代码END IF;

 IF condition THEN     --代码ELSE     --代码 END IF;

 IF condition THEN     --代码 ELSIF condition THEN     --代码 ELSE     --代码 END IF;

 DECLARE      l_deptno emp.deptno%type; BEGIN      SELECT deptno INTO l_deptno FROM emp WHERE empno = 7788;      IF l_deptno = 10 THEN            UPDATE emp SET sal = sal + 3000 WHERE empno = 7788;      ELSIF l_deptno = 20 THEN            UPDATE emp SET sal = sal + 2000 WHERE empno = 7788;       ELSE            UPDATE emp SET sal = sal + 1000 WHERE empno = 7788;        END IF; END; /

2. CASE...END CASE

CASE...END CASE的结构如下：

 CASE          WHEN condition1 THEN value1;          WHEN condition2 THEN value2;          WHEN condition3 THEN value3;          ELSE value4;END CASE;

 DECLARE       l_deptno emp.deptno%type; BEGIN       SELECT deptno INTO l_deptno FROM emp WHERE empno = 7788;       CASE                 WHEN l_deptno = 10 THEN DBMS_OUTPUT.put_line('骨干员工');                 WHEN l_deptno = 20 THEN DBMS_OUTPUT.put_line('精英员工');                 ELSE DBMS_OUTPUT.put_line('普通员工');         END CASE; END; /

3. LOOP循环结构

LOOP循环的结构如下：

 LOOP  --循环代码   EXIT[ WHEN 退出条件];END LOOP;

 DECLARE      l_count number(3) := 1; BEGIN       LOOP              DBMS_OUTPUT.put_line(l_count);              IF l_count = 70 THEN                   EXIT;              END IF;              l_count := l_count +1;       END LOOP; END; /

 DECLARE      l_count number(3) := 1; BEGIN       LOOP              DBMS_OUTPUT.put_line(l_count);              EXIT WHEN l_count = 70;             l_count := l_count +1;       END LOOP; END; /

4. WHILE循环结构

WHILE循环结构如下：

 WHILE condition LOOP   --循环代码END LOOP;

 DECLARE      l_count number(3) := 1; BEGIN       WHILE l_count <= 70 LOOP              DBMS_OUTPUT.put_line(l_count);              l_count := l_count +1;       END LOOP; END; /

5. FOR循环结构

FOR循环结构如下：

 FOR 计数器变量 in 集合 LOOP    --循环代码END LOOP;

 DECLARE BEGIN       FOR l_count in 1..100 LOOP              DBMS_OUTPUT.put_line(l_count);              IF l_count = 70 THEN                   EXIT;              END IF;       END LOOP; END; /

FOR循环代码在所有循环语句中最为简洁，也是最灵活的用法，下一篇我们开始讲存储过程以及存储函数。

• 博文量
7
• 访问量
8239