[반복문]
- Basic Loop : LOOP와 END LOOP 키워드 사이의 LOOP 블록을 계속 수행한다. 도중에 EXIST WHEN 절이 만족되면 LOOP를 탈출한다.
LOOP
statement1;
. . .
EXIT [WHEN condition];
END LOOP;
- While Loop : 일반적인 WHILE Loop와 유사하다.
WHILE condition LOOP
statement1;
statement2;
. . .
END LOOP;
- For Loop : lower_bound..upper_bound이므로, lower_bound가 upper_bound 보다 큰 경우 FOR 루프를 진입하지 않는다. 따라서 REVERSE 키워드를 넣으면 반대로 counter가 내려간다.
루프 안에 카운터만 참조해야 하며, 루프 밖에는 카운터가 정의되어 있지 않다. 또한 카운터를 할당 대상으로 참조하는 것을 피해야하며, 루프의 상한이나 하한을 NULL일 수 없다.
FOR counter IN [REVERSE]
lower_bound..upper_bound LOOP
statement1;
statement2;
. . .
END LOOP;
- 중첩 루프 및 레이블
1) 다중 레벨로 루프를 중첩시킬 수 있다.
2) 블록과 루프의 구분에 레이블을 사용한다.
3) 레이블을 참조하는 EXIT 문을 사용하여 외부 루프를 종료한다.
...
BEGIN
<<Outer_loop>>
LOOP
v_counter := v_counter+1;
EXIT WHEN v_counter>10;
<<Inner_loop>>
LOOP
...
EXIT Outer_loop WHEN total_done = 'YES';
-- Leave both loops
EXIT WHEN inner_done = 'YES';
-- Leave inner loop only
...
END LOOP Inner_loop;
...
END LOOP Outer_loop;
END;
/
'PL SQL' 카테고리의 다른 글
PL/SQL 제어문 (IF, CASE) (0) | 2016.07.07 |
---|---|
PL/SQL 개관 - 3 (SELECT문) (0) | 2016.07.07 |
PL/SQL 개관 - 2 (중첩 블록 및 PL/SQL에서 사용 가능한 SQL) (0) | 2016.07.07 |
PL/SQL 개관 - 1 (정의, 특징, 장점, Block의 종류) (0) | 2016.07.07 |
PL/SQL 패키지 (Package) - 3 (패키지 작성 지침, 오버로드, 지속 상태, 상수 및 예외 표준화) (0) | 2016.07.07 |