-
[ORACLE] (PL/SQL) 오라클 반복문 (LOOP, WHILE, FOR)DBMS 2020. 6. 30. 17:42반응형
PL/SQL에서의 반복문 종류는 LOOP문, WHILE문, FOR문이 있다.
LOOP문
--문법 LOOP 처리문; EXIT[조건]; END LOOP;
--예제 DECLARE NUM NUMBER :=1; BEGIN LOOP DBMS_OUTPUT.PUT_LINE(NUM); --출력 NUM := NUM+1; --NUM = NUM +1 EXIT WHEN NUM >5; --NUM이 5보다 크면 LOOP종료 END LOOP; END;
결과
1 2 3 4 5
LOOP문 사용법은 위와같다. 반복문은 특정조건까지만 반복하며 로직을 수행하는데 LOOP의 반복문은 EXIT[WHEN 조건]; 이라는 구절에서 실행된다. 따라서 EXIT를 누락하면 해당 LOOP는 무한루프에 빠지게 되니 사용하실 때 주의해야 한다.
WHILE문
--문법 WHILE 조건 LOOP 처리문; END LOOP;
--예제 DECLARE NUM NUMBER :=1; BEGIN WHILE(NUM<5) --NUM이 5보다 작을때까지 LOOP실행 LOOP DBMS_OUTPUT.PUT_LINE(NUM); --출력 NUM := NUM+1; --NUM = NUM +1 END LOOP; END;
결과
1 2 3 4
WHILE문은 조건문이 WHILE 다음으로 조건이 갔다는 부분에서만 다르고 나머지는 LOOP와 같다. WHILE문에서도 LOOP처럼 EXIT를 써서 루프를 빠져나가는 방법도 사용할 수 있다.
FOR문
--문법 FOR 증감 변수 IN 초기값..최종값 LOOP 처리문; END LOOP;
DECLARE VAL_NUM NUMBER := 1; BEGIN FOR I IN 1..9 LOOP VAL_NUM := VAL_NUM + 1; DBMS_OUTPUT.PUT_LINE(VAL_NUM); --출력 END LOOP; END;
결과
2 3 4 5 6 7 8 9 10
FOR문은 인덱스값을 DECLARE에서 선언하지 않아도 되므로 가장 반복문중에서 가장 간결하게 사용할 수 있다. 인덱스 값은 초기값에서 시작해 최종값까지 1씩 증가하게 되며 인덱스는 참조는 가능하지만 변경을 할 수는 없다. FOR문에 REVERSE를 명시해주면 FOR문이 거꾸로 시작된다. (EX : FOR I IIN REVERSE 1..9)
본문의 출처 https://coding-factory.tistory.com/452?category=758273
반응형'DBMS' 카테고리의 다른 글
[ORACLE] 오라클 에러 ORA-00984: column not allowed here (0) 2020.12.15 [ORACLE] ( PL/SQL)오라클 프로시저(Procedure) 생성 및 실행 (0) 2020.06.30 [ORACLE] (PL/SQL) 오라클 조건문 (IF, CASE)문 사용방법 (0) 2020.06.30 [ORACLE] (PL/SQL) 오라클 변수, 상수 선언하기 (0) 2020.06.30 [오라클] ORA-28001/ORA-28002 비밀번호 만기관련 갱신방법 (0) 2019.10.06