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