BEGIN
從網站建設到定制行業(yè)解決方案,為提供成都網站設計、成都網站制作服務體系,各種行業(yè)企業(yè)客戶提供網站建設解決方案,助力業(yè)務快速發(fā)展。創(chuàng)新互聯(lián)將不斷加快創(chuàng)新步伐,提供優(yōu)質的建站服務。
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 是跳出整個循環(huán),11g里面才有continue的語法。
如果表中存在數(shù)據的話,沒差別。
但是如果表中沒有數(shù)據的話,第一個不會打印任何結果,第二個會打印一個【'學號:'',姓名:''】
***補充:****
更正:
如果表中存在數(shù)據的話,第二個的最后一條記錄重復出現(xiàn)一次。
但是如果表中沒有數(shù)據的話,第一個不會打印任何結果,第二個會打印一個【'學號:'',姓名:''】
*************
@@@@補充2:@@@@@
出現(xiàn)重復記錄的原因(以兩條數(shù)據為例):
第一種情況:
1、循環(huán)外先fetch一條,發(fā)現(xiàn)不是mycur%notfound,進入循環(huán)體打印第一條記錄。
2、再fetch一條,發(fā)現(xiàn)不是mycur%notfound,繼續(xù)循環(huán)打印第二條記錄。
3、再fetch一條,發(fā)現(xiàn)是mycur%notfound,停止循環(huán)。
第二種情況:
1、直接進入循環(huán)fetch一條,發(fā)現(xiàn)不是mycur%notfound,打印第一條記錄。
2、再循環(huán)fetch一條,發(fā)現(xiàn)不是mycur%notfound,打印第二條記錄。
3、再循環(huán)fetch一條,發(fā)現(xiàn)是mycur%notfound,但程序順序執(zhí)行又執(zhí)行了一遍打印,這個時候因為沒有記錄產生,變量中存放的就是上一條記錄,所以重復打印第二條記錄后,退出循環(huán)。
@@@@@@@@@@@@@@@@@@@@@@@@@
#######補充3:###########
不要管循環(huán)幾次(我舉例子是為了方便理解,既然理解不了就不要想了)。你想:程序是順序執(zhí)行的,第一種情況循環(huán)里面的fetch后直接跟的是循環(huán)停止條件,這樣fetch到底后直接跳出循環(huán)。第二種情況fetch后跟的是打印,這樣fetch到底后肯定會先打印再停止循環(huán),而打印的結果就是上一次殘留的記錄,就是最后一條記錄。
########################
--
以上,希望對你有所幫助。
exit跳出循環(huán),你是說要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;
使用游標的時候一定要控制跳出循環(huán)的條件,
每個循環(huán)結束記得fetch下一跳數(shù)據,不然就會無限循環(huán)。
你的功能是插入數(shù)據,在做INSERT這段,用BEGIN END單獨做成一個BLOCK吧,
寫個EXCEPTION, WHEN OTHERS THEN EXIT;
我覺得基本就這幾點會出現(xiàn)問題吧,你再看看吧。
loop循環(huán)有3種
第一種直接loop 用exit when 退出
第二種是for loop 他用 for i in ... loop
第三種是while loop
個人覺得既然指定了for
循環(huán)的條件,就不應該存在跳出循環(huán)的判斷條件,因為編程的一個宗旨是“one
way
in,one
way
out”,即“一個入口,一個出口”,你現(xiàn)在又兩個出口(一個跳出循環(huán)的條件,一個是for指定的條件),是否不太合適呢,說明你在指定for的條件時并不合適。
分享文章:oracle如何跳出循環(huán) oracle退出循環(huán)的語句
瀏覽路徑:http://jinyejixie.com/article22/hpcpcc.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供建站公司、網站策劃、虛擬主機、微信小程序、網站建設、服務器托管
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)