PL/SQL의 반복문
예제) BASIC LOOP문으로 1에서 5까지 출력
DECLARE
N NUMBER := 1;
BEGIN
LOOP
DBMS_OUTPUT.PUT_LINE(N);
N := N + 1;
IF N > 5 THEN
EXIT;
END IF;
END LOOP;
END;
/
결과)
PL/SQL 프로시저가 성공적으로 완료되었습니다.
1
2
3
4
5
index_counter : upper_bound나 lower_bound에 도달할 때까지 반복하여 증가되는 값을 가진 암시적으로 선언된 변수
REVERSE : upper_bound에서 lower_bound까지 반복하여 인덱스가 1씩 감소
lower_bound : 시작값
upper_bound : 종료값
예제) FOR LOOP문으로 1에서 5까지 출력
DECLARE
BEGIN
FOR N IN 1..5 LOOP
DBMS_OUTPUT.PUT_LINE(N);
END LOOP;
END;
/
문제) FOR문으로 부서번호를 계산 후 이를 SELECT문의 WHERE절에 지정하여 부서정보를 얻어오는 예제
DECLARE
VDEPT DEPT%ROWTYPE;
BEGIN
DBMS_OUTPUT.PUT_LINE('부서번호 / 부서명 / 지역명');
DBMS_OUTPUT.PUT_LINE('----------------------------');
-- CNT는 1부터 1씩 증가하다가 4가 되면 반복문을 벗어남.
FOR CNT IN 1..4 LOOP
SELECT * INTO VDEPT FROM DEPT
WHERE DEPTNO = 10* CNT;
DBMS_OUTPUT.PUT_LINE(VDEPT.DEPTNO||'/'||VDEPT.DNAME||'/'||VDEPT.LOC);
END LOOP;
END;
/
결과)
부서번호 / 부서명 / 지역명
----------------------------
10/ACCOUNTING /NEW YORK
20/RESEARCH /DALLAS
30/SALES /CHICAGO
40/OPERATIONS /BOSTON
예제) WHILE LOOP문으로 1에서 5까지 출력
DECLARE
N NUMBER := 1;
BEGIN
WHILE N <= 5 LOOP
DBMS_OUTPUT.PUT_LINE(N);
N := N+1;
END LOOP;
END;
/
문제) WHILE LOOP문으로 별(*)을 삼각형으로 출력하는 예
DECLARE
V_CNT NUMBER := 1;
V_STR VARCHAR2(10) := NULL;
BEGIN
WHILE V_CNT <= 5 LOOP
V_STR := V_STR || '*';
DBMS_OUTPUT.PUT_LINE(V_STR);
V_CNT := V_CNT + 1;
END LOOP;
END;
/
결과)
PL/SQL 프로시저가 성공적으로 완료되었습니다.
*
**
***
****
*****
'오라클 기초' 카테고리의 다른 글
PL/SQL 패키지와 트리거 (0) | 2016.01.22 |
---|---|
PL/SQL 저장 프로시저(PROCEDURE), 함수(FUNCTION), 커서(CURSOR) (0) | 2016.01.20 |
PL/SQL 선언문: IF~THEN~ELSIF~ELSE~END IF (0) | 2016.01.20 |
PL/SQL 대입문: SELECT INTO, TABLE TYPE, RECORD TYPE (0) | 2016.01.20 |
동의어 (SYNONYM, 시노늄) (0) | 2016.01.20 |