《PL/SQL 语言开发参考手册》之四:PL/SQL 控制语句

《PL/SQL 语言开发参考手册》下载地址      

  1、条件语句

IF boolean_expression1(条件1) THEN ... ELSIF boolean_expression2(条件2) THEN /*注意是ELSIF,而不是ELSEIF*/ ... /*ELSE语句(ELSIF)不是必须的,但END IF;是必须的*/ ELSE ... END IF;  
        注意:
                1)有多个 BOOLEAN 表达式时候  AND(与),OR(或),NOT(非)
                2)条件为 FALSE 与 TRUE 相同;
        2、循环语句                1)Loop 循环

Loop ... (循环体) IF boolean_expr(条件) THEN /* 加条件语句,当满足条件时候退出循环*/ EXIT; /* EXIT WHEN boolean_expr */ END IF; END LOOP;  
                2)WHILE 循环

WHILE boolean_expr(条件) LOOP /* boolean_expr 循环条件*/ ... (循环体) END LOOP;  
                3)FOR 循环

FOR loop_counter IN [REVERSE] low_bound..high_bound LOOP /* 范围中间用2个点表示 从 low_blound 到 high_bound */ ... (循环体) END LOOP;  
                例:

FOR v_cnt IN 1..5 LOOP SELECT * INTO v_emp FROM s_emp WHERE id = v_cnt;  
                注:
                        a、加上 REVERSE 关键字表示递减,从结束边界到起始边界,递减步长为一;不加为递增,从起始边界到结束边界,递减步长为一;
                        b、low_blound 起始边界;high_bound 结束边界;
        3、GOTO 语句 GOTO label_name;
                1)只能由内部块跳往外部块;
                2)设置标签:<< >> 
                3)示例:

LOOP ... IF D%ROWCOUNT = 50 THEN GOTO l_close; END IF; ... END LOOP; <<l_close>>: ...  
        4、NULL 语句        在语句块中加空语句,用于补充语句的完整性。
        例:

IF boolean_expr THEN ... ELSE NULL; END IF;  
        5、SQL in PL/SQL
                1)只有 DML SQL 和 transaction Control SQL 可以直接在 PL/SQL 中使用;
                2)PL/SQL 中的动态 SQL 可以使用所有有效的 SQL 语句,包括 DDL;
                3)动态 SQL 在运行时动态生成 SQL 语句,然后分析语句并执行;
                4)PL/SQL 中的动态 SQL 有两种:本地动态 SQL 和 DBMS_SQL 包;