欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報(bào)邀請(qǐng)碼778899分享:數(shù)據(jù)庫 Oracle中的循環(huán)

柚子快報(bào)邀請(qǐng)碼778899分享:數(shù)據(jù)庫 Oracle中的循環(huán)

http://yzkb.51969.com/

一.循環(huán)

  在所有的編程語言中,循環(huán)都是一個(gè)非常重要的語法,掌握循環(huán),是程序員必不可少的工具。

  在Oracle中,常用的有四種循環(huán),loop循環(huán),while循環(huán),for循環(huán)和goto循環(huán),在本篇文章中,會(huì)向大家分別介紹這幾種循環(huán)的語法,實(shí)例和基本使用注意等。(均為匿名塊或有名塊)

1. loop循環(huán)

  loop經(jīng)常會(huì)與exit when關(guān)鍵字結(jié)合使用,具體語法如下:

1 2 3 4 5 loop????--開始循環(huán)的標(biāo)志 ??loop_body;???--要執(zhí)行的語句??????????? ??exit?when?條件;??--退出循環(huán)的條件 ??[loop_body;]???--要執(zhí)行的語句 end?loop;????--結(jié)束循環(huán)的標(biāo)志

循環(huán)輸出數(shù)值:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 1. 循環(huán)打印0-100之間的所有偶數(shù),并求和 declare var_num?int:=0; var_sum?int:=0; begin ??loop ????dbms_output.put_line(var_num); ????var_sum := var_sum + var_num; ????var_num := var_num + 2; ????exit?when?var_num >100; ??end?loop; ??dbms_output.put_line(var_sum); end; 2. 循環(huán)打印1+2+3+4+...+10 = 55這個(gè)式子和結(jié)果 declare var_num?int:= 1; var_sum?int:= 0; begin ??loop ????dbms_output.put(var_num); ????var_sum := var_sum + var_num; ????var_num := var_num + 1; ????exit?when?var_num > 10; ????dbms_output.put('+'); ???end?loop; ???dbms_output.put_line('='||var_sum); end; 

2. while循環(huán)

  while循環(huán)和loop循環(huán)的語法非常相似,不過相較于loop循環(huán),while循環(huán)多出了進(jìn)入循環(huán)的條件,具體語法如下:

1 2 3 4 5 6 while 條件???--進(jìn)入循環(huán)的條件 ??loop?????????--循環(huán)開始的標(biāo)志 ????loop_body;??????--要執(zhí)行的循環(huán)語句 ????[exit?when?條件;]???--中途退出的條件 ??end?loop; end;

  依舊是循環(huán)打印1-100之間的所有偶數(shù),觀察兩者之間的區(qū)別

1 2 3 4 5 6 7 8 9 10 declare var_num?int?:= 0; begin ??while var_num <= 100 ????loop ??????dbms_output.put_line(var_num); ??????var_num := var_num + 2; ??????exit?when?var_num >100; ????end?loop; end;

  循環(huán)打印1+2+3+...+10=55這個(gè)式子和結(jié)果:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 declare var_num?int?:= 1; var_sum?int?:= 0; begin ??while var_num <= 10 ????loop ??????dbms_output.put(var_num); ??????var_sum := var_sum + var_num; ??????var_num := var_num + 1; ??????exit?when?var_num > 10; ??????dbms_output.put('+'); ?????end?loop; ?????dbms_output.put_line('='||var_sum); end;

3. for 循環(huán)

  for循環(huán)是四種循環(huán)中最為簡單的一種,具體語法如下:

1 2 3 4 for?變量?in?[reverse] 小值..大值 loop ??loop_body; ??[exit?when?條件]; end?loop;

  reverse是逆轉(zhuǎn)的意思,當(dāng)有reverse關(guān)鍵字時(shí),后面緊跟的值要反過來寫,即大值..小值

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 # 循環(huán)打印0-100之間的所有偶數(shù) begin ??for?var_num?in?0..100 loop ????if mod(var_num,2) = 0?then ??????dbms_output.put_line(var_num); ????end?if; ??end?loop; end; # 循環(huán)打印1+2+3+...+10=55的式子和結(jié)果 declare var_sum?int?:= 0; begin ??for?var_num?in?1..10-1 loop ????dbms_output.put(var_num); ????dbms_output.put('+'); ????var_sum := var_sum + var_num; ??end?loop; ??dbms_output.put_line('10='||(var_sum+10)); end;

4. goto循環(huán)

  goto的用法和其他三種循環(huán)都不一樣,當(dāng)使用goto時(shí),可以無條件的跳到處于同一個(gè)PL/SQL塊的任意執(zhí)行語句處。具體使用方法如下:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 循環(huán)打印0-100之間的所有偶數(shù),并求和
declare var_num?int?:= 0; var_sum?int?:= 0; begin ??<>????????--定義goto標(biāo)簽 ??var_num := var_num + 1;?????????????????--循環(huán)體,也就是需要執(zhí)行的循環(huán)部分 ??if mod(var_num,2) = 0?then ????dbms_output.put_line(var_num); ????var_sum := var_sum + var_num; ??end?if; ??if var_num <= 100?then??????????--進(jìn)入循環(huán)的條件 ????goto?routine;????????????????????????--返回上面的循環(huán) ??end?if; ??dbms_output.put_line(var_sum); end;

  利用goto循環(huán),循環(huán)打印1+2+3+...+10=55這個(gè)式子和結(jié)果:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 declare var_num?int?:= 1; var_sum?int?:= 0; begin ??<> ??dbms_output.put(var_num); ??var_sum := var_sum + var_num; ??var_num := var_num + 1; # 加號(hào)也是重復(fù)出現(xiàn)的,所以利用循環(huán)進(jìn)行循環(huán)打印 # 當(dāng)var_sum+10,var_num再加上一等于11時(shí),就不再需要加號(hào) ??if var_num <= 10?then??????? ????dbms_output.put('+'); ??end?if; ??if var_num <= 10?then ????goto?circulate; ??end?if; ??dbms_output.put_line('='||var_sum); end; 

二. continue,retune,exit的使用

1. continue

  continue在英文中有繼續(xù)的意思,在oracle中結(jié)合循環(huán)使用,則是跳過本次循環(huán),繼續(xù)下一次循環(huán)。

  利用cintinue關(guān)鍵字,可以輕松的做到數(shù)據(jù)的篩選,例如打印0-100之間的所有偶數(shù):

1 2 3 4 5 6 7 8 9 10 11 12 13 14 declare var_num?int?:= -1; begin ??loop ????var_num := var_num +1; # 當(dāng)大于100時(shí),會(huì)結(jié)束整個(gè)循環(huán) ????exit?when?var_num > 100; # 當(dāng)變量為奇數(shù)時(shí),會(huì)跳過之后的執(zhí)行語句,結(jié)束這次循環(huán),從而進(jìn)入下次循環(huán)? ????if mod(var_num,2) =1?then ????????continue; ????end?if; ????dbms_output.put_line(var_num); ??end?loop; end;???

  和exit比較,continue不會(huì)跳出整個(gè)循環(huán),它只是跳過不符合條件的本次循環(huán),從而開啟新的循環(huán),依舊處于循環(huán)階段,直到所有數(shù)據(jù)全部循環(huán)完畢。而exit則是在符合條件后,直接結(jié)束整個(gè)循環(huán)部分,轉(zhuǎn)而去執(zhí)行循環(huán)體外的其他內(nèi)容。

2. return 

  在循環(huán)中使用exit和return時(shí),兩者的作用都是跳出整個(gè)循環(huán),不過不同于exit ,return在跳出整個(gè)循環(huán)的同時(shí),循環(huán)體外的其他內(nèi)容也不會(huì)執(zhí)行。

  下面給出幾段代碼,查看兩者的不同:

1 2 3 4 5 6 7 8 9 10 begin ??for?var_num?in?1..5 loop ????if var_num = 3?then ??????exit;   ???--return; ????end?if; ????dbms_output.put_line(var_num);?? ??end?loop; ??dbms_output.put_line('I love oracle!'); end; 

  結(jié)果:

1 2 3 4 5 6 7 8 exit: 1 2 I love oracle! return: 1 2

  可以看出相較于exit,return直接跳出了整個(gè)循環(huán),同時(shí)還跳過了循環(huán)外的執(zhí)行語句,直接結(jié)束了整段代碼。結(jié)合網(wǎng)上查到的資料,則可以總結(jié)到:在oracle中,return的作用,是跳出整個(gè)語句,如果是存儲(chǔ)過程,則跳出存儲(chǔ)過程,如果是函數(shù),則跳出整個(gè)函數(shù)。

柚子快報(bào)邀請(qǐng)碼778899分享:數(shù)據(jù)庫 Oracle中的循環(huán)

http://yzkb.51969.com/

相關(guān)閱讀

評(píng)論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19209954.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄