《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 包;