상세 컨텐츠

본문 제목

Oracle -PLSQL 실습2(반복문)

IT/DBMS

by TMI1 2025. 7. 11. 16:02

본문

--○ 기본 반복문
-- LOOP ~ END LOOP;

-- 1. 조건과 상관없이 무조건 반복하는 구문 

-- 2. 형식 및 구조
/*
LOOP
    --실행문;
    EXIT WHEN 조건;       -- 조건이 참인 경우 반복문을 빠져나간다. 
END LOOP;
*/

--○ 1부터 10까지의 수 출력(LOOP 문 활용)

DECLARE
    --N NUMBER := 1;
    N NUMBER;
BEGIN
    N := 1;
    
    LOOP
        DBMS_OUTPUT.PUT.LINE(N);
        EXIT WHEN N>=10;
        N := N + 1; -- N++; N+=1;
    END LOOP;
END;

--==>>
/*
1
2
3
4
5
6
7
8
9
10


PL/SQL 프로시저가 성공적으로 완료되었습니다.
*/

--○ WHILE 반복문
-- WHILE LOOP ~ END LOOP;

-- 1. 제어 조건이 TRUE 인 동안 일련의 문장을 반복하기 위해
--    WHILE LOOP 문장을 사용함.
--    조건은 반복이 시작될 때 체크하게 되어
--    LOOP 내의 문장이 한 번도 수행되지 않을 경우도 있다.
--    LOOP 시작할 때 조건이 FALSE 이면 반복 문장을 탈출하게 된다.

-- 2. 형식 및 구조
/*
WHILE 조건 LOOP       -- 조건이 참인 경우 반복 수행
    -- 실행문
END LOOP;
*/ 

--○ 1부터 10까지의 수 출력(LOOP 문 활용)
DECLARE
    N   NUMBER;
BEGIN
    N := 0;
    
    WHILE N<10 LOOP
        N := N + 1;             --[JAVA] : N++;, N+=1;
         DBMS_OUTPUT.PUT_LINE(N);
    END LOOP;
END;
--==>>
/*
1
2
3
4
5
6
7
8
9
10


PL/SQL 프로시저가 성공적으로 완료되었습니다.
*/

--○FOR 반복문
-- FOR LOOP ~ END LOOP;

-- 1. 시작 수 에서 1씩 증가하여
--    끝낸 수가 될 때 까지 반복 수행한다.

-- 2. 형식 및 구조
/*
FOR 카운터 IN [REVERSE] 시작수 .. 끝냄수 LOOP
    -- 실행문;
END LOOP; 
*/

--○ 1부터 10까지의 수 출력(FOR LOOP 문 활용)
DECLARE 
    N   NUMBER;
BEGIN 
    FOR N IN 1 .. 10 LOOP
        DBMS_OUTPUT.PUT_LINE(N);
    END LOOP;
END;
/*
1
2
3
4
5
6
7
8
9
10


PL/SQL 프로시저가 성공적으로 완료되었습니다.
*/
--==>>

--○ 사용자로부터 임의의 단(구구단)을 입력받아
--   해당 단수의 구구단을 출력하는 PL/SQL 구문을 작성한다.
--  LOOP, WHILE LOOP, FOR LOOP 를 통해 해결한다. 

-- LOOP 문 활용
ACCEPT INPUT PROMPT '단을 입력하세요.'; 

DECLARE 
    DAN NUMBER := &NUM; -- 변수선언 
    N NUMBER;
BEGIN
    N := 1;

    LOOP
        DBMS_OUTPUT.PUT_LINE(DAN || ' *' || N || '=' || (DAN * N));     
    EXIT WHEN N>=9;
    N := N +1;
    
    END LOOP;
END;

/*
2 *1=2
2 *2=4
2 *3=6
2 *4=8
2 *5=10
2 *6=12
2 *7=14
2 *8=16
2 *9=18


PL/SQL 프로시저가 성공적으로 완료되었습니다
*/

--○ WHILE LOOP 반복문
--○ 1부터 10까지의 수 출력(LOOP 문 활용)

ACCEPT INPUT PROMPT '단을 입력'; 

DECLARE
    DAN NUMBER := &NUM;
    N NUMBER;
BEGIN
    N := 0;
    WHILE (N=<9) LOOP
        N := N +1;
        DBMS_OUTPUT.PUT_LINE(DAN || ' *' || N || '=' || (DAN * N));    
    END LOOP;      
END



/*
2 *1=2
2 *2=4
2 *3=6
2 *4=8
2 *5=10
2 *6=12
2 *7=14
2 *8=16
2 *9=18


PL/SQL 프로시저가 성공적으로 완료되었습니다
*/

ACCEPT INPUT PROMPT '단을 입력하세요.'; 

DECLARE 
    DAN NUMBER := &NUM;
    N   NUMBER;
BEGIN 
    FOR N IN 1 .. 9 LOOP
        DBMS_OUTPUT.PUT_LINE(DAN || ' *' || N || '=' || (DAN * N)); 
    END LOOP;
END;
/*
7 *1=7
7 *2=14
7 *3=21
7 *4=28
7 *5=35
7 *6=42
7 *7=49
7 *8=56
7 *9=63


PL/SQL 프로시저가 성공적으로 완료되었습니다
*/

'IT > DBMS' 카테고리의 다른 글

Oracle - 동적/정적SQL + 프로시저(1)  (1) 2025.07.14
Oracle -PLSQL 함수  (0) 2025.07.11
Oracle -PLSQL 실습1  (2) 2025.07.11
Oracle -DELETE, VIEW 생성  (3) 2025.07.11
Oracle - 테이블 전체 컬럼 이름UPDATE  (1) 2025.07.11

관련글 더보기

댓글 영역