ORACLE中循环语句也叫loop语句,它可以重复的执行指定的语句块。loop循环语句有四种形式:loop;while..loop;for..loop;cursor for loop;
工具/原料
ORACLE
PLSQL
基本LOOP循环
1、语法:[ <<lable_name>>]loop statement...end loop [lable_name]
2、注释:lable_name:loop语句的标签,与结构控制语句case类似loop:循环的开始statement:循环体,也就是需要重复执行的语句end loop:循环结束标志基本loop循环由于没有控制循环结束语句,所以循环体中需要判断是否循环结束来控制循环,要不然会出现死循环的情况
3、一、使用EXIT...WHEN来判断是否循环结束例:求1+2+..+100的和DECLARE str1 number; nu number;BEGIN str1 := 1 ; nu := 0 ; <<loop_text>>LOOP nu := nu + str1; str1 := str1+1; EXIT loop_text WHEN str1>100 ;END LOOP; DBMS_OUTPUT.PUT_LINE('循环结束。1+2+。。。+100的结果为:'||nu);END;
4、代码解析:第2--6行:声明两个加数并赋予初始值第9--10:循环体,做四则运算,加数nu + 加数str1 的和在赋值给加数nu第11行:判断str1是否为真,为真则退出,为假则继续循环第13行:循环结束后打印输出结果
5、二、使用IF语句来判断是否循环结束例:求1+2+..+100的和DECLARE str1 艘绒庳焰number; nu number;蚱澄堆别BEGIN str1 := 1 ; nu := 0 ; <<loop_text>>LOOP nu := nu + str1; str1 := str1+1; IF str1>100 THEN DBMS_OUTPUT.PUT_LINE('循环结束'); EXIT loop_text; END IF; END LOOP; DBMS_OUTPUT.PUT_LINE('1+2+。。。+100的结果为:'||nu);END;
6、代码解析:第1-6行与上诉一致,声明两个参数然后在赋值初始化第11-13行:使用IF语句做判断,条件为真这执行退出语句EXIT,条件为假则跳过继续循环
WHILE..LOOP循环语句
1、WHILE..LOOP循环语句自身可以控制结束循环,就不需要在循环体中通过判断来窑钕仇焱结束循环,基本语法为:[ <<lable_n锾攒揉敫ame>> ]WHILE boolean_expressionloop statement....end loop [lable_name] ;注释:boolean_expression为一个布尔类型的值,当boolean_expression为真时执行loop语句,当boolean_expression为假时,则跳过当前的loop循环
2、例:求1+2+..+100的和DECLARE str1 number; nu number;BEGIN str1 := 1 ; nu := 0 ; <<loop_text>>WHILE str1<=100LOOP nu := nu + str1; str1 := str1+1; END LOOP; DBMS_OUTPUT.PUT_LINE('结束循环,1+2+。。。+100的结果为:'||nu);END;
3、注释:第1-6行与上诉一致,声明两个参数然后在赋值初始化第8行:判断str1<=100是否为真,当str1为1.。100时,都小于等于100,所以为真则执行loop循环第9-12行:循环体