Oracle 循环相关
生活随笔
收集整理的這篇文章主要介紹了
Oracle 循环相关
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.簡單的循環 以loop關鍵字開始, exit when子句退出循環, end loop子句為循環結束標志。 DECLARE PI???CONSTANT?NUMBER?(9,?7)?:=?3.1415926; RADIUS????????INTEGER?(5); AREA??????????NUMBER?(14,?2); BEGIN RADIUS?:=?3; LOOP AREA?:=?PI?*?POWER?(RADIUS,?2); DBMS_OUTPUT.put_line?('半徑:'?||?RADIUS?||?';?面積:'||?AREA); RADIUS?:=?RADIUS?+?1; EXIT?WHEN?AREA?>?100; END?LOOP; END;
2,簡單的游標循環
?? ?%FOUND ? ? ? ? ? ? ?可在游標中取一個記錄
?? ?%NOTFOUND ? ? ? ?不能從游標中再取一個記錄
?? ?%ISOPEN ? ? ? ? ? ? ?游標已經打開
?? ?%ROWCOUNT?????? 迄今為止從游標中取出的行數
?? ?
?? ?exit when rad_cursor%NOTFOUND;/*如果游標中取不到值則推出循環*/?
3.FOR循環 DECLARE PI???CONSTANT?NUMBER?(9,?7)?:=?3.1415926; RADIUS????????INTEGER?(5); AREA??????????NUMBER?(14,?2); BEGIN FOR?RADIUS?IN?1?..?7 LOOP AREA?:=?PI?*?POWER?(RADIUS,?2); DBMS_OUTPUT.put_line?('半徑:'?||?RADIUS?||?';?面積:'||?AREA); END?LOOP; END;
4.游標循環 DECLARE PI???CONSTANT?NUMBER?(9,?7)?:=?3.1415926; AREA??????????NUMBER?(14,?2); CURSOR?RAD_CURSOR IS SELECT?*?FROM?RADIUS_VAS; BEGIN FOR?RAD_VAL?IN?RAD_CURSOR LOOP AREA?:=?PI?*?POWER?(RAD_VAL.RADIUS,?2); DBMS_OUTPUT.put_line?('半徑:'?||?RAD_VAL.RADIUS||?';?面積:'?||?AREA); END?LOOP; END;
5.WHILE循環 DECLARE PI???CONSTANT?NUMBER?(9,?7)?:=?3.1415926; RADIUS????????INTEGER?(5); AREA??????????NUMBER?(14,?2); BEGIN RADIUS?:=?3; WHILE?RADIUS?<=?7 LOOP AREA?:=?PI?*?POWER?(RADIUS,?2); DBMS_OUTPUT.PUT_LINE?('半徑:'?||?RADIUS?||?';?面積:'?||?AREA); RADIUS?:=?RADIUS?+?1; END?LOOP; END;
6.CASE語句 DECLARE pi???CONSTANT?NUMBER?(9,?7)?:=?3.1415926; area??????????NUMBER?(14,?2); CURSOR?rad_cursor IS SELECT?*?FROM?RADIUS_VALS; rad_val???????rad_cursor%ROWTYPE; BEGIN OPEN?rad_cursor; LOOP FETCH?rad_cursor?INTO?rad_val; EXIT?WHEN?rad_cursor%NOTFOUND; area?:=?pi?*?POWER?(rad_val.radius,?2); CASE WHEN?rad_val.Radius?=?3 THEN DBMS_OUTPUT.put_line?('半徑:'?||?rad_val.radius?||?';?面積:'?||?area); WHEN?rad_val.Radius?=?4 THEN DBMS_OUTPUT.put_line?('半徑:'?||?rad_val.radius?||?';?面積:'?||?area); WHEN?rad_val.Radius?=?10 THEN DBMS_OUTPUT.put_line?('半徑:'?||?rad_val.radius?||?';?面積:'?||?area); ELSE RAISE?CASE_NOT_FOUND; END?CASE; END?LOOP; END; http://blog.csdn.net/yxc369/article/details/1470780
2,簡單的游標循環
?? ?%FOUND ? ? ? ? ? ? ?可在游標中取一個記錄
?? ?%NOTFOUND ? ? ? ?不能從游標中再取一個記錄
?? ?%ISOPEN ? ? ? ? ? ? ?游標已經打開
?? ?%ROWCOUNT?????? 迄今為止從游標中取出的行數
?? ?
?? ?exit when rad_cursor%NOTFOUND;/*如果游標中取不到值則推出循環*/?
3.FOR循環 DECLARE PI???CONSTANT?NUMBER?(9,?7)?:=?3.1415926; RADIUS????????INTEGER?(5); AREA??????????NUMBER?(14,?2); BEGIN FOR?RADIUS?IN?1?..?7 LOOP AREA?:=?PI?*?POWER?(RADIUS,?2); DBMS_OUTPUT.put_line?('半徑:'?||?RADIUS?||?';?面積:'||?AREA); END?LOOP; END;
4.游標循環 DECLARE PI???CONSTANT?NUMBER?(9,?7)?:=?3.1415926; AREA??????????NUMBER?(14,?2); CURSOR?RAD_CURSOR IS SELECT?*?FROM?RADIUS_VAS; BEGIN FOR?RAD_VAL?IN?RAD_CURSOR LOOP AREA?:=?PI?*?POWER?(RAD_VAL.RADIUS,?2); DBMS_OUTPUT.put_line?('半徑:'?||?RAD_VAL.RADIUS||?';?面積:'?||?AREA); END?LOOP; END;
5.WHILE循環 DECLARE PI???CONSTANT?NUMBER?(9,?7)?:=?3.1415926; RADIUS????????INTEGER?(5); AREA??????????NUMBER?(14,?2); BEGIN RADIUS?:=?3; WHILE?RADIUS?<=?7 LOOP AREA?:=?PI?*?POWER?(RADIUS,?2); DBMS_OUTPUT.PUT_LINE?('半徑:'?||?RADIUS?||?';?面積:'?||?AREA); RADIUS?:=?RADIUS?+?1; END?LOOP; END;
6.CASE語句 DECLARE pi???CONSTANT?NUMBER?(9,?7)?:=?3.1415926; area??????????NUMBER?(14,?2); CURSOR?rad_cursor IS SELECT?*?FROM?RADIUS_VALS; rad_val???????rad_cursor%ROWTYPE; BEGIN OPEN?rad_cursor; LOOP FETCH?rad_cursor?INTO?rad_val; EXIT?WHEN?rad_cursor%NOTFOUND; area?:=?pi?*?POWER?(rad_val.radius,?2); CASE WHEN?rad_val.Radius?=?3 THEN DBMS_OUTPUT.put_line?('半徑:'?||?rad_val.radius?||?';?面積:'?||?area); WHEN?rad_val.Radius?=?4 THEN DBMS_OUTPUT.put_line?('半徑:'?||?rad_val.radius?||?';?面積:'?||?area); WHEN?rad_val.Radius?=?10 THEN DBMS_OUTPUT.put_line?('半徑:'?||?rad_val.radius?||?';?面積:'?||?area); ELSE RAISE?CASE_NOT_FOUND; END?CASE; END?LOOP; END; http://blog.csdn.net/yxc369/article/details/1470780
轉載于:https://www.cnblogs.com/yuan1/p/5367002.html
總結
以上是生活随笔為你收集整理的Oracle 循环相关的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浅谈Tuple之C#4.0新特性
- 下一篇: 查看Oracle有哪些表或者视图