대덕인재/Oracle

[Oracle D-18] 반복문

꼬마버거 2025. 4. 24. 11:57

🌀 Oracle 반복문의 종류

Oracle PL/SQL에서 반복문은 총 3가지 종류가 있어!

반복문 종류 특징
LOOP 무한 루프 (탈출 조건 필요!)
WHILE LOOP 조건을 만족하는 동안 반복
FOR LOOP 정해진 횟수만큼 반복 (가장 간단함!)

✅ 1. 기본 LOOP (무한 반복)

📌 형식

LOOP
   -- 반복할 작업
   EXIT WHEN 조건;
END LOOP;

🧪 예제: 1부터 5까지 출력

DECLARE
   i NUMBER := 1;
BEGIN
   LOOP
      DBMS_OUTPUT.PUT_LINE('i = ' || i);
      i := i + 1;
      EXIT WHEN i > 5;
   END LOOP;
END;

✅ 2. WHILE LOOP

조건을 먼저 검사한 다음, 참일 때만 반복해.

📌 형식

WHILE 조건 LOOP
   -- 반복할 작업
END LOOP;

🧪 예제: 1부터 5까지 출력

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

✅ 3. FOR LOOP

시작값부터 끝값까지 정해진 횟수만큼 반복 (Java의 for(int i=0; i<5; i++)와 비슷)

📌 형식

FOR 변수 IN 시작값..끝값 LOOP
   -- 반복할 작업
END LOOP;

🧪 예제: 1부터 5까지 출력

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

📌 FOR LOOP – 역순도 가능!

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

✨ BONUS: CONTINUE & EXIT

 

키워드 설명
EXIT 반복문 탈출
EXIT WHEN 조건 조건을 만족하면 탈출
CONTINUE 현재 반복을 건너뛰고 다음으로 넘어감 (11g부터 사용 가능)

🧪 예제: 짝수만 출력

BEGIN
   FOR i IN 1..10 LOOP
      IF MOD(i, 2) = 1 THEN
         CONTINUE;
      END IF;
      DBMS_OUTPUT.PUT_LINE('짝수: ' || i);
   END LOOP;
END;

✅ 언제 어떤 반복문을 쓰면 좋을까?

 

상황 추천 반복문
반복 횟수가 정해져 있음 FOR LOOP
조건이 참일 동안 반복 WHILE LOOP
반복 중 탈출 조건을 제어하고 싶을 때 LOOP + EXIT

📦 실무에서 반복문 사용하는 예

  • 테이블에 있는 데이터를 한 줄씩 처리할 때
  • 일괄적으로 INSERT/UPDATE할 때
  • 숫자 계산, 누적 합계 계산
  • 커서(Cursor)와 함께 레코드 반복 처리

😎 정리 요약

반복문 설명 사용법
LOOP 무한 반복 → EXIT로 탈출 LOOP ... EXIT WHEN 조건; END LOOP;
WHILE 조건을 만족하는 동안 반복 WHILE 조건 LOOP ... END LOOP;
FOR 횟수 정해져 있을 때 FOR i IN 1..10 LOOP ... END LOOP;