대덕인재/Oracle

[Oracle D-17] LOOP

꼬마버거 2025. 4. 23. 19:13

🧠 LOOP란?

LOOP는 같은 동작을 반복 수행할 수 있는 구조야.

Oracle의 PL/SQL에서는 3가지 종류의 반복문이 있어:

 

🔁 Oracle 반복문의 종류


 

반복문 종류 설명 탈출 조건 필수?
LOOP ... EXIT 기본 루프, EXIT로 빠져나옴 ✅ 필요함
WHILE LOOP 조건을 먼저 검사 → 참이면 반복 ✅ 필요함
FOR LOOP 정해진 횟수만큼 자동 반복 ❌ 조건 내장

1️⃣ 기본 LOOP

DECLARE
  i NUMBER := 1;
BEGIN
  LOOP
    DBMS_OUTPUT.PUT_LINE('i = ' || i);
    i := i + 1;

    EXIT WHEN i > 5;  -- i가 6이 되면 빠져나옴
  END LOOP;
END;

📌 설명: 무한 반복처럼 보이지만, EXIT WHEN으로 탈출 조건을 줬음


2️⃣ WHILE LOOP

DECLARE
  i NUMBER := 1;
BEGIN
  WHILE i <= 5 LOOP
    DBMS_OUTPUT.PUT_LINE('i = ' || i);
    i := i + 1;
  END LOOP;
END;
 

📌 설명: i <= 5인 동안만 반복


3️⃣ FOR LOOP

BEGIN
  FOR i IN 1..5 LOOP
    DBMS_OUTPUT.PUT_LINE('i = ' || i);
  END LOOP;
END;
 


(i := i + 1 안 해도 됨!)


🧤 LOOP 안에서 쓸 수 있는 제어문


 

문법 설명
EXIT 즉시 루프 종료
EXIT WHEN 조건 조건이 참일 때 루프 종료
CONTINUE 아래 내용 건너뛰고 다음 반복
CONTINUE WHEN 조건 조건이 참이면 다음 반복 진행

📌 예:

FOR i IN 1..10 LOOP
  CONTINUE WHEN MOD(i, 2) = 0; -- 짝수 건너뛰기
  DBMS_OUTPUT.PUT_LINE('홀수: ' || i);
END LOOP;

✅ 정리 요약


반복문 종류 쓰는 상황
LOOP 단순한 반복이 필요할 때
WHILE 조건이 참인 동안만 반복할 때
FOR 반복 횟수가 정해져 있을 때 (가장 편함!)

 


😎 한 줄 요약:

Oracle의 PL/SQL에서는 LOOP, WHILE, FOR로 반복 처리를 할 수 있고,
EXIT, CONTINUE 같은 제어문을 통해 흐름을 조절할 수 있어!