[Oracle] 오라클 반복문 (LOOP, WHILE, FOR)문 사용법 (PL/SQL)

다른언어와 마찬가지로 PL/SQL에서도 반복문을 지원합니다. PL/SQL에서의 반복문 종류는 LOOP문, WHILE문, FOR문이 있습니다.

 

LOOP문

--사용법
LOOP
처리문;
EXIT[조건];
END LOOP;
--예제
DECLARE
NUM1 NUMBER :=1;

BEGIN
    LOOP
    DBMS_OUTPUT.PUT_LINE(NUM1); --출력
    NUM1 := NUM1+1; --NUM = NUM +1
    EXIT WHEN NUM1 >10; --NUM1이 10보다 크면 LOOP종료
    END LOOP;
END;

LOOP문

LOOP문 사용법은 위와같습니다. 반복문은 특정조건까지만 반복하며 로직을 수행하는데 LOOP의 반복문은 EXIT[WHEN 조건]; 이라는 구절에서 실행됩니다. 따라서 EXIT를 누락하면 해당 LOOP는 무한루프에 빠지게 되니 사용하실 때 주의하셔야 합니다.

 

WHILE문

--사용법
WHILE 조건
LOOP
처리문;
END LOOP;
--예제
DECLARE
NUM1 NUMBER :=1;

BEGIN
    WHILE(NUM1<10) --NUM이 10보다 작을때까지 LOOP실행
    LOOP
    DBMS_OUTPUT.PUT_LINE(NUM1); --출력
    NUM1 := NUM1+1; --NUM = NUM +1
    END LOOP;
END;

WHILE문

WHILE문은 조건문이 WHILE 다음으로 조건이 갔다는 부분에서만 다르고 나머지는 LOOP와 같습니다. WHILE문에서도 LOOP처럼 EXIT를 써서 루프를 빠져나가는 방법도 사용할 수 있습니다.

 

FOR문

--사용법
FOR 증감변수 IN 초기값..최종값
LOOP
처리문;
END LOOP;
BEGIN
    FOR I IN 1..9
    LOOP
    DBMS_OUTPUT.PUT_LINE('안녕하세요'); --출력
    END LOOP;
END;

FOR문

FOR문은 인덱스값을 DECLARE에서 선언하지 않아도 되므로 가장 반복문중에서 가장 간결하게 사용할 수 있습니다. 인덱스 값은 초기값에서 시작해 최종값까지 1씩 증가하게 되며 인덱스는 참조는 가능하지만 변경을 할 수는 없습니다. FOR문에 REVERSE를 명시해주면 FOR문이 거꾸로 시작합니다. (EX : FOR I IIN REVERSE 1..9)

댓글

Designed by JB FACTORY