1.基本循环(至少会执行一次)
DECLARE I INT :=1; BEGIN LOOP --循环开始 DBMS_OUTPUT.PUT_LINE('VALUE:'||I); EXIT WHEN I=10; --退出循环条件; I:=I+1; --循环监视变量 END LOOP; --循环结束 END;
2.WHILE循环(只有满足while添加才能执行)
DECLARE I INT :=1; BEGIN WHILE I<=10 LOOP --LOOP 后面没有分号 DBMS_OUTPUT.PUT_LINE('VALUE'||I); I:=I+1; END LOOP; END;
3.For循环
BEGIN FOR I IN REVERSE 1..10 LOOP -- REVERE 的意思就是反转,从10-1开始循环滴呀; DBMS_OUTPUT.put_line('VALUE'|| I); END LOOP; --这个就不用监视循环变量滴呀 END;
4.循环嵌套
嵌套循环是指在一个循环语句之中嵌入另一个循环语句,
而标号(label)则用于标记嵌套块或嵌套循环,通过在嵌套循环中使用标号,
可以区分内层循环和外层循环,并且可以在内层循环中直接退出外层循环,
在编写时可以用<<label_name>>定义标号
DECLARE RESULT INT; BEGIN <<OUTER>> FOR I IN 1..10 LOOP <<INTER>> FOR J IN 1..10 LOOP RESULT :=I*J; DBMS_OUTPUT.PUT_LINE(RESULT); EXIT OUTER WHEN RESULT=10; --当结果等于10退出外层循环,也就退出了全部的循环 EXIT WHEN RESULT=5; --当结果等于5的时候退出循环结束 END LOOP INTER; DBMS_OUTPUT.PUT_LINE('EXIT INTER'); END LOOP OUTER; DBMS_OUTPUT.put_line('EXIT OUTER'); END;