DataBase/Oracle
18. Oracle PL/SQL 반복문
유가엘
2020. 4. 3. 10:38
Basic Loop
무조건 1번은 실행 한 후 조건에 맞지 않으면 실행하지 않습니다.
Basic Loop 문의 구조
Loop
PL/SQL 문장;
EXIT 조건 ;
END LOOP;
SET SERVEROUTPUT ON;
DECLARE
num number := 0;
BEGIN
LOOP
dbms_output.put_line(num);
num := num+1;
EXIT WHEN num >10;
END LOOP;
END;
/
---------------------------------------------------
DECLARE
num number := 10;
BEGIN
LOOP
dbms_output.put_line(num);
num := num-1;
EXIT WHEN num = -1;
END LOOP;
END;
/
While 문
조건을 먼저 확인 후 실행 여부를 판단 합니다.
While 문의 구조
WHILE 조건 LOOP
실행 문장;
END LOOP;
DECLARE
num number := 0;
BEGIN
WHILE num <11 LOOP
dbms_output.put_line(num);
num := num +1;
END LOOP;
END;
/
-------------------------------------------
DECLARE
num number := 10;
BEGIN
WHILE num >=0 LOOP
dbms_output.put_line(num);
num := num -1;
END LOOP;
END;
For 문
반복 횟수를 지정할 수 있습니다.
For 문의 구조
For n:카운터 횟수 IN START...END LOOP
실행문장;
END LOOP;
BEGIN
FOR num IN 0..10 LOOP
dbms_output.put_line(num);
END LOOP;
END;
---------------------------------------------------
BEGIN
FOR num IN REVERSE 0..10 LOOP
dbms_output.put_line(num);
END LOOP;
END;
Continue 문
Oracle 11g 에서 추가되었으며 보조제어합니다.
조건에 부합할때 상위로 올라갑니다.
DECLARE
tot number := 0;
BEGIN
FOR i in 1..10 LOOP
tot := tot+1;
dbms_output.put_line('tot:'||tot);
CONTINUE WHEN (i>5);
tot := tot+i;
dbms_output.put_line('tot2:'||tot);
END LOOP;
END;