PL/SQL循环

目录

1. FOR 循环

-- FOR 循环的注意事项:

-- LOOP 循环

-- WHILE 循环

-- 总结: 

TIPS:

跳出循环指令


1. FOR 循环
FOR 循环变量 IN 循环下限..循环上线 LOOP
  -- 循环变量可以用任意的字母或者单词去替代
  循环执行的逻辑题
  END LOOP;

计算 1-100的累加值

DECLARE
V_TEXT VARCHAR2(1000):='';
BEGIN
  FOR X IN 1..10 LOOP
    V_TEXT:=V_TEXT || 'O_0 ';
    DBMS_OUTPUT.put_line(V_TEXT);
    END LOOP;
END;
-- FOR 循环的注意事项:

1. 循环变量只能在循环体内引用.
2. 循环变量只能在 IN 上下限之间每次循环赋值,不能使用其他字句重新赋值
3. 循环体中间不能缺少字句,如果为了验证循环,可以加入一个 NULL;

BEGIN
FOR X IN 1..20 LOOP
  NULL;
  END LOOP;
END; 
-- LOOP 循环
DECLARE 
V_SUM NUMBER:=0;
BEGIN
LOOP 
  V_SUM:=V_SUM+1;
  dbms_output.put_line(V_SUM);
  EXIT WHEN V_SUM=5;
  -- 如果这里不设定跳出循环条件,会陷入死循环
   dbms_output.put_line(V_SUM);
   END LOOP;
END;
-- WHILE 循环
DECLARE 
V_SUM NUMBER:=0;
BEGIN
WHILE V_SUM < 20 LOOP
    DBMS_OUTPUT.PUT_LINE(V_SUM);
    V_SUM:=V_SUM+1;
END LOOP;
END;
-- 总结: 

三种循环: 
-- FOR 循环,循环变量在下限和上限之间,迭代,循环达到上限的最后一次即可终止.

-- LOOP 循环, 循环无止境,直至符合循环跳出的条件,如果没有设定好条件,会陷入死循环

-- while 循环,要先设定符合的条件,才会进入循环,如果没有设定好条件,容易陷入死循环.

TIPS:

* 如果语句在循环中至少执行一次,一般使用 LOOP;
* 如果在每次开始重复时,都必须测试条件,一般使用 while 
* 如果重复次数已知, 一般使用 FOR 循环.

跳出循环指令

CONTINUE:使用CONTINUE语句可以跳过当前循环迭代并继续执行下一次循环

DECLARE 
   i NUMBER := 1; 
BEGIN 
   FOR i IN 1..5 LOOP 
      IF i = 3 THEN 
         CONTINUE; 
      END IF; 
      DBMS_OUTPUT.PUT_LINE('i = ' || i); 
   END LOOP; 
END; 

EXIT:使用EXIT语句可以立即终止循环

DECLARE 
   i NUMBER := 1; 
BEGIN 
   FOR i IN 1..5 LOOP 
      IF i = 3 THEN 
         CONTINUE; 
      END IF; 
      DBMS_OUTPUT.PUT_LINE('i = ' || i); 
   END LOOP; 
END; 

你可能感兴趣的:(PL/SQL,数据库)