본문 바로가기
DATABASE/ORACLE

[PL/SQL] 무작성 시작하기 (3) - LOOP, WHILE 반복문

by 허도치 2020. 1. 13.

2020/01/13 - [DATABASE/ORACLE] - [PL/SQL] 무작정 시작하기 (1) - PL/SQL 이란?

2020/01/13 - [DATABASE/ORACLE] - [PL/SQL] 무작정 시작하기 (2) - IF 조건문

 

 

  지난 포스트에서는 조건문을 간단하게 다루어보았다. 이번 포스트에서는 조건문과 함께 따라다니는 반복문에 대해서 알아보도록하겠다. 사실 반복문은 다음 포스트에서 다룰 CURSOR와 주로 사용되며 개별적으로는 잘 사용되지 않는다.

 

 

1. 반복문의 종류.

   1-1. LOOP.

         - PL/SQL에서 사용되는 기본 문법.

         - 기본 문법에 반복문을 탈출하는 조건이 없으므로 내부에서 반드시 로직을 구현해야 함.

            * EXIT WHEN [조건식] : 조건식이 참인 경우 탈출.

         - 중첩하여 사용할 수 있음.

 

   1-2. WHILE [조건식] LOOP.

          - 조건식이 참인 경우에만 수행됨.

          - 대부분의 프로그래밍 언어에서 사용하는 반복문인 While문과 똑같음.

         - 중첩하여 사용할 수 있음.

 

2. LOOP 반복문을 사용한 예제.

    2-1. 1~10까지 출력하는 예제.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
--실행 결과를 출력하도록 설정
SET SERVEROUTPUT ON
 
--스크립트 경과 시간을 출력하도록 설정
SET TIMING ON
 
DECLARE
--변수를 정의하는 영역
 
    V_CNT NUMBER := 1;
 
BEGIN
--작업 영역
 
    LOOP
    
        DBMS_OUTPUT.PUT_LINE( V_CNT );
        
        V_CNT := V_CNT + 1;
        
        EXIT WHEN V_CNT > 10;
    
    END LOOP;
 
END
;
--작업 종료
cs

           - 15 ln: 반복문의 시작.

           - 21 ln: 반복문의 종료 조건.

           - 23 ln: 반복문의 종료.

 

 

3. WHILE LOOP 반복문을 사용한 예제.

    3-1. 1~10까지 출력하는 예제.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
--실행 결과를 출력하도록 설정
SET SERVEROUTPUT ON
 
--스크립트 경과 시간을 출력하도록 설정
SET TIMING ON
 
DECLARE
--변수를 정의하는 영역
 
    V_CNT NUMBER := 1;
 
BEGIN
--작업 영역
    
    WHILE V_CNT <= 10 LOOP
    
        DBMS_OUTPUT.PUT_LINE( V_CNT );
        
        V_CNT := V_CNT + 1;
    
    END LOOP;
 
END
;
--작업 종료
cs

           - 15 ln: 반복문의 시작 및 종료 조건.

           - 23 ln: 반복문의 종료.

 

 

4. 마치며.

    - 이번 포스트는 조건문과 더불어서 아주 간단하게 다루어보았다. 왜냐하면 반복문은 CURSOR를 사용하지 않으면 위와 같이 카운팅하거나 특정 범위의 날짜를 구할 때 주로 쓴다. 그래서 PL/SQL에는 이런 반복문이 있다는 것과 어떻게 사용하는지 정도만 알아두면 좋을것 같다.

    - 다음 포스트에서는 CURSOR에 대해서 알아보도록 하겠다.

댓글