FOR문
FOR문도 다른 프로그래밍 언어에서 사용하는 것과 비슷한 형태이다. 오라클에서 제공하는 FOR문의 기본 유형은 다음과 같다.
FOR 인덱스 IN [REVERSE]초깃값..최종값
LOOP
처리문;
END LOOP;
인덱스는 초깃값에서 시작해 최종값까지 루프를 돌며 1씩 증가되는데, 인덱스는 참조는 가능하지만 변경할 수는 없고 참조도 오직 루프 안에서만 가능하다. 그리고 REVERSE를 명시하면 순서가 거꾸로 된다. 즉 최종값부터 시작해 최솟값에 이르기까지 감소하면서 루프를 돈다. 구구단 3단을 출력하는 익명 블록을 FOR문으로 변경해 보자.
입력
DECLARE
vn_base_num NUMBER := 3;
BEGIN
FOR i IN 1..9
LOOP
DBMS_OUTPUT.PUT_LINE (vn_base_num || '*' || i || '= ' || vn_base_num * i);
END LOOP;
END;
FOR 루프에서 사용하는 인덱스는 선언부에서 선언하지 않고 사용했음을 유념하자. 이번에는 REVERSE를 사용해 순서를 바꿔 보자.
입력
DECLARE
vn_base_num NUMBER := 3;
BEGIN
FOR i IN REVERSE 9..1
LOOP
DBMS_OUTPUT.PUT_LINE (vn_base_num || '*' || i || '= ' || vn_base_num * i);
END LOOP;
END;
결과
3*9= 27
3*8= 24
3*7= 21
3*6= 18
3*5= 15
3*4= 12
3*3= 9
3*2= 6
3*1= 3
지금까지 기본 형태의 FOR문을 살펴봤는데, 커서와 함께 FOR문을 사용하면 그 형태가 약간 다르다. 이에 대해서는 커서를 다루는 장에서 설명하겠다.