[Oracle] 오라클 반복문 (LOOP, WHILE, FOR)문 사용법 (PL/SQL)
- DB/Oracle
- 2019. 12. 19.
다른언어와 마찬가지로 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의 반복문은 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 다음으로 조건이 갔다는 부분에서만 다르고 나머지는 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문은 인덱스값을 DECLARE에서 선언하지 않아도 되므로 가장 반복문중에서 가장 간결하게 사용할 수 있습니다. 인덱스 값은 초기값에서 시작해 최종값까지 1씩 증가하게 되며 인덱스는 참조는 가능하지만 변경을 할 수는 없습니다. FOR문에 REVERSE를 명시해주면 FOR문이 거꾸로 시작합니다. (EX : FOR I IIN REVERSE 1..9)
'DB > Oracle' 카테고리의 다른 글
[Oracle] 오라클 예외처리 (PL/SQL) (0) | 2019.12.21 |
---|---|
[Oracle] 오라클 프로시저(Procedure) 생성 및 실행 (PL/SQL) (0) | 2019.12.20 |
[Oracle] 오라클 조건문 (IF, CASE)문 사용법 (PL/SQL) (1) | 2019.12.18 |
[Oracle] 오라클 변수 및 상수 선언 및 사용법 (PL/SQL) (0) | 2019.12.17 |