ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Oracle - 반복문(LOOP, WHILE, FOR)
    Database/Oracle 2022. 4. 25. 18:01

    Oracle 반복문

    LOOP 문

    1. 사용법

    LOOP
    처리문;
    EXIT[조건];
    END LOOP;

    LOOP 문의 사용방법은 위와 같다. 

     

    2. 예제

    DECLARE
    	NUM01 NUMBER := 1;
    
    BEGIN 
    	LOOP
    	DBMS_OUTPUT.PUT_LINE(NUM01);   -- 변수 출력
    	NUM01 := NUM01 + 1;   -- 변수 1씩 증가
    	EXIT WHEN NUM01 > 10;   -- NUM01이 10보다 크면 반복문 종료
    	END LOOP;
    END;

    반복문은 특정 조건까지만 반복하며 로직을 수행하는데, LOOP 문의 반복문은 EXIT[WHEN 조건];이라는 구절에서 종료된다. 따라서, EXIT를 누락하면 해당 LOOP는 무한루프에 빠지게 되니 사용할 때 주의해야 한다.

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10

    앞서 설명한 코드의 결과는 위와 같다.

     

    WHILE 문

    1. 사용법

    WHILE(조건)
    LOOP
    처리문;
    END LOOP;

    WHILE 문의 사용 방법은 위와 같다.

     

    2. 예제

    DECLARE
    	NUM01 NUMBER := 1;
    
    BEGIN 
    	WHILE(NUM01 < 10)
    	LOOP
    	NUM01 := NUM01 + 1;
    	DBMS_OUTPUT.PUT_LINE(NUM01);
    	END LOOP;
    END;

    WHILE 문은 조건문이 WHILE 다음에 나오는 것만 제외하고 LOOP 문과 동일하다. WHILE 문에서도 LOOP 문과 같이 EXIT 구절을 사용해서 반복문을 빠져나갈 수 있다.

     

    1
    2
    3
    4
    5
    6
    7
    8
    9

    앞서 설명한 코드의 결과는 위와 같다.

     

    FOR 문

    1. 사용법

    FOR 증감변수 IN 초기값..최종값
    LOOP
    처리문;
    END LOOP;

    FOR 문의 사용 방법은 위와 같다.

     

    2. 예제

    BEGIN 
    	FOR I IN 1..9
    	LOOP
    	DBMS_OUTPUT.PUT_LINE('안녕하세요.');   -- 출력
    	END LOOP;
    END;

    FOR 문의 경우 인덱스 값을 선언문에 선언하지 않아도 되기 때문에, 반복문중에서 가장 간단하게 사용할 수 있다. 인덱스 값은 초기값에서 시작해서 최종 값까지 1씩 증가하게 되며, 인덱스는 참조는 가능하지만 변경을 할 수는 없다.

    추가적으로, FOR 문에 REVERSE를 명시해주면 FOR문이 거꾸로 시작한다. ex) FOR I IN REVERSE 1..9

     

    안녕하세요.
    안녕하세요.
    안녕하세요.
    안녕하세요.
    안녕하세요.
    안녕하세요.
    안녕하세요.
    안녕하세요.
    안녕하세요.

    앞서 설명한 코드의 결과는 위와 같다.


    출처

    https://coding-factory.tistory.com/452

     

    728x90

    'Database > Oracle' 카테고리의 다른 글

    Oracle - BETWEEN AND  (0) 2022.05.02
    Oracle - 조건문(IF, CASE)  (0) 2022.04.27
    Oracle - MERGE INTO  (0) 2022.04.26
    Oracle - 변수 및 상수 선언  (0) 2022.04.25
    Oracle - MySQL의 LIMIT & Oracle의 ROWNUM  (0) 2022.04.04

    댓글

Designed by Tistory.