oracle 跳出一个循环的问题
有一个存储过程,其中有两个镶嵌循环,如:fort1in.....loopfort2in....loop//满足一定条件时跳出t2这个循环,进行t1的下一个循环,应该怎么写...
有一个存储过程,其中有两个镶嵌循环,如:
for t1 in ..... loop
for t2 in .... loop
//满足一定条件时跳出t2这个循环,进行t1的下一个循环,应该怎么写
end loop;
end loop; 展开
for t1 in ..... loop
for t2 in .... loop
//满足一定条件时跳出t2这个循环,进行t1的下一个循环,应该怎么写
end loop;
end loop; 展开
7个回答
展开全部
Oracle不支持 Break与Continue
Break 使用 EXIT 替换
Continue使用GOTO替换
SQL> DECLARE
2 testvalue INT;
3 BEGIN
4 testvalue := 0;
5 WHILE testvalue < 5 LOOP
6 <<l_Begin_Loop>>
7 testvalue := testvalue + 1;
8 IF testvalue = 2 THEN
9 GOTO l_Begin_Loop;
10 END IF;
11 IF testvalue = 4 THEN
12 EXIT;
13 END IF;
14 dbms_output.put_line( TO_CHAR(testvalue) );
15 END LOOP;
16 END;
17 /
1
3
PL/SQL procedure successfully completed.
Break 使用 EXIT 替换
Continue使用GOTO替换
SQL> DECLARE
2 testvalue INT;
3 BEGIN
4 testvalue := 0;
5 WHILE testvalue < 5 LOOP
6 <<l_Begin_Loop>>
7 testvalue := testvalue + 1;
8 IF testvalue = 2 THEN
9 GOTO l_Begin_Loop;
10 END IF;
11 IF testvalue = 4 THEN
12 EXIT;
13 END IF;
14 dbms_output.put_line( TO_CHAR(testvalue) );
15 END LOOP;
16 END;
17 /
1
3
PL/SQL procedure successfully completed.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
个人觉得既然指定了for 循环的条件,就不应该存在跳出循环的判断条件,因为编程的一个宗旨是“one way in,one way out”,即“一个入口,一个出口”,你现在又两个出口(一个跳出循环的条件,一个是for指定的条件),是否不太合适呢,说明你在指定for的条件时并不合适。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用FOR循环的话没有跳出这个功能
你可以用EXCEPTION处理来跳出,或者GOTO也行,或者把FOR循环改成LOOP循环
你可以用EXCEPTION处理来跳出,或者GOTO也行,或者把FOR循环改成LOOP循环
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for t1 in ..... loop
for t2 in .... loop
//满足一定条件时跳出t2这个循环,进行t1的下一个循环,应该怎么写
exit when true;
end loop;
end loop;
for t2 in .... loop
//满足一定条件时跳出t2这个循环,进行t1的下一个循环,应该怎么写
exit when true;
end loop;
end loop;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询