Oracle 10g PL/SQL语言的for/while循环没有提供类似break/continue之类跳出循环的语句,但是有goto(在C中,goto的名声不太好)。如下:
DECLARE
done BOOLEAN;
BEGIN
FOR i IN 1 .. 50 LOOP
IF done THEN
GOTO end_loop;
END IF ;
<< end_loop >> -- not allowed unless an executable statement follows
NULL ; -- add NULL statement to avoid error
END LOOP; -- raises an error without the previous NULL
END ;
done BOOLEAN;
BEGIN
FOR i IN 1 .. 50 LOOP
IF done THEN
GOTO end_loop;
END IF ;
<< end_loop >> -- not allowed unless an executable statement follows
NULL ; -- add NULL statement to avoid error
END LOOP; -- raises an error without the previous NULL
END ;
在上面的代码中,<<end_loop>>标签后面要接一个NULL;语句,不然运行过程中会出错。按上面的方式跳出循环,算是一种折衷吧!