EXIT语句¶
语法:
exit ::=
参数:
label 标号名
boolean_expression 布尔表达式
说明:
退出一个循环(LOOP/ WHILE/ FOR)。
如果EXIT语句没有给出标签label,那么退出最内层的循环,然后执行跟在END LOOP后面的语句。如果给出标签,那么必须是当前或更高层的嵌套循环块的标签。然后该块就会终止,而控制落到对应循环END语句后面的语句上。
如果有WHEN子句,那么仅当条件为真时退出循环。
示例:EXIT语句¶
--清理环境
DROP PROCEDURE proc1;
DROP PROCEDURE proc2;
CREATE OR REPLACE PROCEDURE proc1 AS
DECLARE
cnt INT;
BEGIN
cnt := 0;
LOOP
dbms_output.put_line(cnt);
cnt := cnt + 1;
EXIT WHEN cnt > 4;
END LOOP;
END;
/
EXEC proc1;
0
1
2
3
4
CREATE OR REPLACE PROCEDURE proc2 AS
BEGIN
<<LOOP1>>
LOOP
dbms_output.put_line('LOOP1');
<<LOOP2>>
LOOP
dbms_output.put_line('LOOP2');
EXIT LOOP1;
END LOOP;
END LOOP;
END;
/
EXEC proc2;
LOOP1
LOOP2
--删除
DROP PROCEDURE proc1;
DROP PROCEDURE proc2;