exit跳出循环。SQLSERVER用BREAK
成都创新互联主要从事网站设计、成都网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务平谷,10多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108
if 跳出循环的条件 then
exit;
end if;
或者
exit when 条件(一定是一个返回true或者false的判断条件)
BEGIN
FOR I IN 1 .. 10 LOOP
FOR J IN 1..20 LOOP
DBMS_OUTPUT.PUT_LINE('J IS :'|| J);
EXIT WHEN J = 10;
END LOOP INNER;
DBMS_OUTPUT.PUT_LINE('I IS:'||I);
EXIT WHEN I = 5;
END LOOP OUTER;
END;
exit when 是跳出整个循环,11g里面才有continue的语法。
如果表中存在数据的话,没差别。
但是如果表中没有数据的话,第一个不会打印任何结果,第二个会打印一个【'学号:'
',姓名:'
'】
***补充:****
更正:
如果表中存在数据的话,第二个的最后一条记录重复出现一次。
但是如果表中没有数据的话,第一个不会打印任何结果,第二个会打印一个【'学号:'
',姓名:'
'】
*************
@@@@补充2:@@@@@
出现重复记录的原因(以两条数据为例):
第一种情况:
1、循环外先fetch一条,发现不是mycur%notfound,进入循环体打印第一条记录。
2、再fetch一条,发现不是mycur%notfound,继续循环打印第二条记录。
3、再fetch一条,发现是mycur%notfound,停止循环。
第二种情况:
1、直接进入循环fetch一条,发现不是mycur%notfound,打印第一条记录。
2、再循环fetch一条,发现不是mycur%notfound,打印第二条记录。
3、再循环fetch一条,发现是mycur%notfound,但程序顺序执行又执行了一遍打印,这个时候因为没有记录产生,变量中存放的就是上一条记录,所以重复打印第二条记录后,退出循环。
@@@@@@@@@@@@@@@@@@@@@@@@@
#######补充3:###########
不要管循环几次(我举例子是为了方便理解,既然理解不了就不要想了)。你想:程序是顺序执行的,第一种情况循环里面的fetch后直接跟的是循环停止条件,这样fetch到底后直接跳出循环。第二种情况fetch后跟的是打印,这样fetch到底后肯定会先打印再停止循环,而打印的结果就是上一次残留的记录,就是最后一条记录。
########################
--
以上,希望对你有所帮助。
使用游标的时候一定要控制跳出循环的条件,
每个循环结束记得fetch下一跳数据,不然就会无限循环。
你的功能是插入数据,在做INSERT这段,用BEGIN END单独做成一个BLOCK吧,
写个EXCEPTION, WHEN OTHERS THEN EXIT;
我觉得基本就这几点会出现问题吧,你再看看吧。
exit跳出循环,你是说要continue的那,这个似乎没有,可以用if else 来解决。
begin
for i in 1..10 loop
if i3 then
dbms_output.put_line(i);
if i=5 then
exit;
end if ;
end if;
end loop;
end;
loop循环有3种
第一种直接loop 用exit when 退出
第二种是for loop 他用 for i in ... loop
第三种是while loop