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