如果表中存在数据的话,没差别.
但是如果表中没有数据的话,第一个不会打印任何结果,第二个会打印一个【'学号:'',姓名:''】
***补充:****
更正:
如果表中存在数据的话,第二个的最后一条记录重复出现一次.
*************
出现重复记录的原因(以两条数据为例):
第一种情况:
①.、循环外先fetch一条,发现不是mycur%notfound,进入循环体打印第一条记录.
第二种情况:
①.、直接进入循环fetch一条,发现不是mycur%notfound,打印第一条记录.
@@@@@@@@@@@@@@@@@@@@@@@@@
不要管循环几次(我举例子是为了方便理解,既然理解不了就不要想了).你想:程序是顺序执行的,第一种情况循环里面的fetch后直接跟的是循环停止条件,这样fetch到底后直接跳出循环.第二种情况fetch后跟的是打印,这样fetch到底后肯定会先打印再停止循环,而打印的结果就是上一次残留的记录,就是最后一条记录.
########################
--
以上,希望对你有所帮助.
BEGIN
FOR I IN 1 .. 10 LOOP
DBMS_OUTPUT.PUT_LINE('J IS :'|| J);
EXIT WHEN J = 10;
END LOOP INNER;
DBMS_OUTPUT.PUT_LINE('I IS:'||I);
END LOOP OUTER;
END;
exit when 是跳出整个循环,11g里面才有continue的语法.
exit跳出循环,你是说要continue的那,这个似乎没有,可以用if else 来解决.
begin
for?i?in?1..10?loop
dbms_output.put_line(i);
exit;
end?if?;
end?if;
end?loop;
end;
第一种直接loop 用exit when 退出
第二种是for loop 他用 for i in ... loop
第三种是while loop
exit跳出循环.SQLSERVER用BREAK
if 跳出循环的条件 then
end if;
或者
exit when 条件(一定是一个返回true或者false的判断条件)