oracle 跳出一个循环的问题
有一个存储过程,其中有两个镶嵌循环,如: 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;
答案:exit跳出循环。SQLSERVER用BREAK
if 跳出循环的条件 then
exit;
end if;
或者
exit when 条件(一定是一个返回true或者false的判断条件)
其他:用FOR循环的话没有跳出这个功能
你可以用EXCEPTION处理来跳出,或者GOTO也行,或者把FOR循环改成LOOP循环 for t1 in ..... loop
for t2 in .... loop
//满足一定条件时跳出t2这个循环,进行t1的下一个循环,应该怎么写
exit when true;
end loop;
end loop; break;? continue 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.
上一个:oracle count(*),count(1)与count(rowid)区别
下一个:oracle 一个表能放在不同的表空间吗?