oracle 11g 直接用continue 關(guān)鍵字,例子:
成都創(chuàng)新互聯(lián)長(zhǎng)期為上千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為永善企業(yè)提供專業(yè)的網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì),永善網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
declare
cursor v_cur is(
select level as l from dual connect by level = 10);
i number;
begin
open v_cur;
loop
fetch v_cur
into i;
exit when v_cur%notfound;
if i = 5 then
continue; --跳出本次循環(huán),光標(biāo)移到一下一條記錄
else
dbms_output.put_line(i);
end if;
end loop;
close v_cur;
end;
11g以下版本,可以使用 GOTO 語句或者自定義異常:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
declare
cursor v_cur is(
select level as l from dual connect by level = 10);
i number;
e exception;
begin
open v_cur;
loop
fetch v_cur
into i;
exit when v_cur%notfound;
begin
if i = 5 then
raise e; --通過拋出異常跳出本次循環(huán)
else
dbms_output.put_line(i);
end if;
exception
when e then
null;
end;
end loop;
close v_cur;
end;
1
2
3
declare
cursor v_cur is(
select level as l from dual connect by level = 10);
i number;
begin
open v_cur;
loop
flag
fetch v_cur
into i;
exit when v_cur%notfound;
if i = 5 then
goto flag; --通過goto跳出本次循環(huán)
else
dbms_output.put_line(i);
end if;
end loop;
close v_cur;
end;
第二步是打開游標(biāo),即執(zhí)行FOR后面的那句select語句 ,將結(jié)果正式查詢出來加載到內(nèi)存中,這時(shí)游標(biāo)curRESULT里就正式有數(shù)據(jù)了。
第三步是把游標(biāo)結(jié)果集中當(dāng)前數(shù)據(jù)記錄的多個(gè)字段一個(gè)一個(gè)的賦值給幾個(gè)變量,當(dāng)然如果結(jié)果集和幾個(gè)變量的變量個(gè)數(shù)和變量類型必須是一樣的,如果不一樣會(huì)出錯(cuò)。
第四步curRESULT%FOUND是判斷curRESULT這個(gè)游標(biāo)循環(huán)到當(dāng)前記錄是否還有記錄存在。FETCH下移是移動(dòng)到下一條記錄,如果當(dāng)前記錄已經(jīng)是最后一條,那他會(huì)下移到一條界外的虛擬記錄,這時(shí)當(dāng)你用curRESULT%FOUND去判斷的時(shí)候會(huì)得到FALSE,這就是剛才為什么我們要判斷curRESULT%FOUND的原因了。
游標(biāo)是映射在結(jié)果集中一行數(shù)據(jù)上的位置實(shí)體,有了游標(biāo),用戶就可以訪問結(jié)果集中的任意一行數(shù)據(jù)了,將游標(biāo)放置到某行后,即可對(duì)該行數(shù)據(jù)進(jìn)行操作,例如提取當(dāng)前行的數(shù)據(jù)等。
游標(biāo)的分類 :
顯式游標(biāo)和隱式游標(biāo)
一般在存貯過程中使用。