Database/Oracle
Oracle - 반복문(LOOP, WHILE, FOR)
임빈영
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