ORACLE WHILE문과 LOOP문
CREATE OR REPLACE PROCEDURE ADJDK.TEST10(V_SU IN NUMBER) --선언문(매개변수)
IS
IN_SU NUMBER(3) NOT NULL := 1;
NOT_ONE_ERROR EXCEPTION; --에러를 정의합니다.
BEGIN
DBMS_OUTPUT.PUT_LINE(IN_SU);
WHILE IN_SU <= V_SU LOOP --WHILE문을 도는 조건입니다.
DBMS_OUTPUT.PUT_LINE('현재 값은'||IN_SU||'입니다.');
IN_SU := IN_SU + 1; --IN_SU를 +1씩 해줍니다.
EXIT WHEN IN_SU > V_SU; --해당 조건이면 while문을 탈출합니다.
END LOOP;
IN_SU := 1;
LOOP
DBMS_OUTPUT.PUT_LINE('현재값은 '||IN_SU||'입니다.(LOOP)');
IN_SU := IN_SU + 1; --IN_SU를 +1씩 해줍니다.
EXIT WHEN IN_SU > V_SU; --해당 조건이면 while문을 탈출합니다.
END LOOP;
EXCEPTION --에러 시작
WHEN NOT_ONE_ERROR THEN --해당 에러라면 밑에 구문처리합니다.
DBMS_OUTPUT.PUT_LINE('입력한 숫자는 1이 아닙니다.');
WHEN OTHERS THEN --다른 에러라면 밑에 구문을 처리합니다.
DBMS_OUTPUT.PUT_LINE('예외발생');
END TEST10; --프로시저 마침
/
EXEC TEST10(3); --실행구문