오라클 반복문 사용 방법 및 예시(LOOP, FOR LOOP, WHILE LOOP)
해당 포스팅은 오라클 반복문(LOOP, FOR LOOP, WHILE LOOP)을 사용하는 방법 및 간단한 예시를 정리한 내용입니다.
oracle에서 반복문은 PL/SQL(Procedural Language/Structured Query Language)을 사용하여 수행되기 때문에 프로시저나 함수 등을 작성할 때도 활용될 수 있는데요.
아래 내용을 통해 oracle에서 사용되는 반복문인 'LOOP', 'FOR LOOP', 'WHILE LOOP' 각각의 개념과 특징, 그리고 예시를 살펴보겠습니다.
LOOP
/* LOOP 기본 구조 */
LOOP
--반복 작업 수행
EXIT WHEN 조건;
END LOOP;
(LOOP 기본 구조)
LOOP 반복문은 'EXIT WHEN 조건' 절의 조건이 참(TRUE)인 경우 반복문을 빠져나가는 구조입니다.
때문에 'EXIT WHEN 조건' 절이 누락되는 경우 반복문이 무한 루프에 빠진다는 점을 주의해야 합니다.
/* LOOP 예시 */
DECLARE
counter NUMBER := 1;
BEGIN
LOOP
DBMS_OUTPUT.PUT_LINE('현재 숫자: ' || counter);
counter := counter + 1;
EXIT WHEN counter > 10;
END LOOP;
END;
(LOOP 반복문 간단한 예시)
* DBMS_OUTPUT.PUT_LINE 출력이 안 되는 경우 'SET serveroutput ON;' 명령어를 통해 해당 기능을 켜주면 됩니다.
FOR LOOP
/* FOR LOOP 기본 구조 */
FOR i IN [REVERSE] 시작값..종료값 LOOP
-- 반복 작업 수행
END LOOP;
(FOR LOOP 기본 구조)
FOR LOOP 반복문의 경우 선언부에서 인덱스 값을 선언하지 않고, 반복문에서 바로 사용할 수 있다는 특징이 있습니다.
인덱스의 값은 시작 값에서 시작하여 종료 값까지 1씩 증가하게 되며, 인덱스 값에 대한 참조는 가능하지만 변경을 할 수는 없다는 특징이 있습니다.
'FOR i IN REVERSE 1..10 LOOP'와 같이 'IN' 다음 'REVERSE'를 추가로 입력하는 경우 인덱스 값이 종료 값부터 시작 값까지 1씩 감소하는 반복문을 사용할 수 있습니다.
/* FOR LOOP 예시 */
BEGIN
FOR counter IN 1..10 LOOP
DBMS_OUTPUT.PUT_LINE('현재 숫자: ' || counter);
END LOOP;
END;
/* FOR LOOP REVERSE 예시 */
BEGIN
FOR counter IN REVERSE 1..10 LOOP
DBMS_OUTPUT.PUT_LINE('현재 숫자: ' || counter);
END LOOP;
END;
(FOR LOOP 반복문 간단한 예시)
WHILE LOOP
/* WHILE LOOP 기본 구조 */
WHILE condition LOOP
-- 반복 작업 수행
END LOOP;
(WHILE LOOP 기본 구조)
WHILE LOOP 반복문은 주어진 조건(condition)을 확인 후 조건이 참(TRUE) 일 경우 수행되며, 조건이 거짓(FALSE)이 되면 반복문이 수행되지 않고 종료됩니다.
조건을 먼저 확인 후 반복 작업을 동작할지 여부를 결정하기 때문에 반복 작업이 한 번도 수행되지 않을 수 있다는 특징이 있습니다.
또한 기본 LOOP 문과 같이 'EXIT WHEN 조건' 절을 사용하여 반복문을 빠져나갈 수도 있습니다.
/* WHILE LOOP 예시 */
DECLARE
counter NUMBER := 1;
BEGIN
WHILE(counter <= 10) LOOP
DBMS_OUTPUT.PUT_LINE('현재 숫자: ' || counter);
counter := counter + 1;
END LOOP;
END;
(WHILE LOOP 반복문 간단한 예시)
< 함께 보면 좋은 자료 >
2024.05.04 - [Programming/Oracle] - oracle 사용자 정의 함수 function 생성 및 실행 방법
'Programming > Oracle' 카테고리의 다른 글
오라클 NULL 치환 함수 정리 (NVL, NVL2, COALESCE, NULLIF) (0) | 2024.06.06 |
---|---|
Oracle INSTR 특정 문자를 찾을 때 사용하는 함수 (1) | 2024.05.15 |
oracle 사용자 정의 함수 function 생성 및 실행 방법 (0) | 2024.05.04 |
(Oracle) MERGE INTO 구문 사용 방법 및 예시 (1) | 2024.04.18 |
(Oracle) 계층형 쿼리 START WITH CONNECT BY PRIOR (0) | 2024.02.18 |