PL/SQL에서 사용하는 반복문
- 조건 없이 반복 작업을 제공하기 위한 BASIC LOOP 문
- COUNT를 기본으로 작업의 반복 제어를 제공한 FOR LOOP문
- 조건을 기본으로 작업의 반복 제어를 제공하기 위한 WHILE LOOP문
- LOOP를 종료하기 위한 EXIT문
4.1 BASIC LOOP문
가장 간단한 루프로, 구분 문자로 LOOP와 END LOOP 가 사용된다.
LOOP
-- 반복할 문장들
EXIT WHEN [조건문];
END LOOP;
위 구문에서 LOOP 키워드는 반복문의 시작을 나타내며, END LOOP;는 반복문의 끝을 나타냅니다.
반복할 문장들은 LOOP와 END LOOP; 사이에 작성하며,
EXIT WHEN 키워드를 사용하여 반복문을 빠져나갈 조건을 지정할 수 있습니다.
기본 LOOP는 LOOP에 들어갈 때 조건이 이미 일치했다 할지라도 적어도 한번은 문장이 실행된다.
<EX>
DECLARE
v_counter NUMBER := 1;
BEGIN
LOOP
DBMS_OUTPUT.PUT_LINE(v_counter);
v_counter := v_counter + 1;
EXIT WHEN v_counter > 5;
END LOOP;
END;
/
출력결과
1
2
3
4
5
4.2 FOR LOOP 문
반복회수가 정해진 반복문을 처리하기에 용이하다.
FOR index_counter
IN [REVERSE] lower_bound..upper_bound LOOP
statement1;
statement2;
...
END LOOP;
FOR LOOP 문에서 사용되는 인덱스는 정수로 자동 선언되므로, 따로 선언할 필요가 없다.
FOR LOOP 문은 LOOP를 반복할 때마다 자동적으로 1씩 증가 또는 감소한다.
REVERSE 는 1씩 감소함을 의미한다.
index_counter - upper_bound나 lower_bound에 도달할 때까지 LOOP를 반복함으로써 1씩 자동적으로 증가하거나 감소되는 값을 가진 암시적으로 선언된 정수
REVERSE - upper_bound에서 lower_bound까지 반복함으로써 인덱스가 1씩 감소되도록 한다.
lower_bound - index_counter 값의 범위에 대한 하단 바운드 값을 지정.
upper_bound - index_counter 값의 범위에 대한 상단 바운드 값을 지정.
FOR LOOP문으로 1부터 5까지 출력하는 예시
<EX>
DECLARE
BEGIN
FOR N IN 1..5 LOOP
DBMS_OUTPUT.PUT_LINE(N);
END LOOP;
END;
/
출력결과
1
2
3
4
5
4.3 WHILE LOOP문
제어 조건이 TURE인 동안만 일련의 문장을 반복하기 위해 WHILE LOOP문을 사용한다.
조건은 반복이 시작될 때 체크되어 LOOP 내의 문장이 한 번도 수행되지 않을 경우도 있다.
LOOP를 시작할 때 조건이 FALSE면 반복 문장을 탈출한다.
WHILE condition LOOP
statements;
END LOOP;
/
여기서 condition은 조건을 나타내는 부울 표현식이며, statements는 실행할 하나 이상의 PL/SQL 문입니다. 루프의 몸체는 한 번 이상 실행될 수 있으며, 조건이 거짓이면 루프를 빠져나와 다음 문장으로 이동합니다.
다음은 WHILE LOOP 문을 사용하여 1에서 5까지의 숫자를 출력하는 코드입니다.
DECLARE
i NUMBER := 1;
BEGIN
WHILE i <= 5 LOOP
DBMS_OUTPUT.PUT_LINE(i);
i := i + 1;
END LOOP;
END;
/
'개발공부 > SQL' 카테고리의 다른 글
PL/SQL 저장 함수 (6) (0) | 2023.04.09 |
---|---|
PL/SQL 저장 프로시저(IN, OUT, IN OUT, 바인드 변수) (5) (0) | 2023.04.09 |
PL/SQL 선택문, 조건문 / DECODE 함수 (3) (0) | 2023.04.06 |
PL/SQL 의 출력문 일반 SQL과의 차이 (0) | 2023.04.06 |
PL/SQL 에서 SELECT , INTO(2) (0) | 2023.04.05 |