-- ● 기본 반복문
--
-- LOOP ~ END LOOP; (루프 시작했다 루프 끝났다)
-- 1. 조건과 상관없이 무조건 반복하는 구문.
-- 2. 형식 및 구조
LOOP
-- 실행문; 사이에 실행문 오게 된다. 반복을 해야되는 구문이다.
-- EXIT WHEN 조건; 조건이 참인 경우 반복문을 빠져나간다.
END LOOP;
-- ● 1 부터 100 까지의 수 출력(LOOP 문 활용)
DECLARE
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 까지의 수 출력(WHILE LOOP 문 활용)
DECLARE
N NUMBER;
BEGIN
N := 0;
WHILE N<10 LOOP
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 시작수..끝냄수 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 프로시저가 성공적으로 완료되었습니다.
*/
<구구단 3가지 반복문으로 출력하기>
-- ● 사용자로부터 임의의 단(구구단)을 입력받아
-- 해당 단수의 구구단을 출력하는 PL/SQL 구문을 작성한다.
-- LOOP, WHILE LOOP, FOR LOOP 를 통해 해결한다.
/*
실행 예)
바인딩 변수 입력 대화창 → 단을 입력하세요 : 2
2*1=2
2*2=4
:
:
2*9=18
*/
--▶[LOOP]
ACCEPT VAR PROMPT '구구단의 단 입력(예: 2)';
DECLARE
DAN NUMBER;
N NUMBER;
BEGIN
DAN := &VAR;
N := 1;
DBMS_OUTPUT.PUT_LINE('입력받은 단 : ' || DAN);
LOOP
DBMS_OUTPUT.PUT_LINE(DAN||' * '||N||' = '|| DAN*N);
EXIT WHEN N >= 9;
N := N+1;
END LOOP;
END;
/*
입력받은 단 : 3
3 * 1 = 3
3 * 2 = 6
3 * 3 = 9
3 * 4 = 12
3 * 5 = 15
3 * 6 = 18
3 * 7 = 21
3 * 8 = 24
3 * 9 = 27
PL/SQL 프로시저가 성공적으로 완료되었습니다.
*/
--▶[WHILE LOOP]
ACCEPT VAR PROMPT '구구단의 단 입력(예: 2)';
DECLARE
DAN NUMBER;
GOB NUMBER;
BEGIN
DAN := &VAR;
GOB := 1;
WHILE GOB<10 LOOP
DBMS_OUTPUT.PUT_LINE(DAN || '*'||GOB||'='||DAN*GOB);
GOB:=GOB+1;
END LOOP;
END;
/*
5*1=5
5*2=10
5*3=15
5*4=20
5*5=25
5*6=30
5*7=35
5*8=40
5*9=45
PL/SQL 프로시저가 성공적으로 완료되었습니다.*/
--▶[FOR LOOP]
ACCEPT VAR PROMPT '구구단의 단 입력(예: 2)';
DECLARE
DAN NUMBER;
N NUMBER;
BEGIN
DAN := &VAR;
N := 1;
FOR N IN 1..9 LOOP
DBMS_OUTPUT.PUT_LINE(DAN || ' * '||N||' = '||DAN*N);
END LOOP;
END;
/*
8 * 1 = 8
8 * 2 = 16
8 * 3 = 24
8 * 4 = 32
8 * 5 = 40
8 * 6 = 48
8 * 7 = 56
8 * 8 = 64
8 * 9 = 72
PL/SQL 프로시저가 성공적으로 완료되었습니다.
*/
'📚Study Note > ORACLE' 카테고리의 다른 글
[ ORACLE ] CREATE OR REPLACE FUNCTION 함수명() (0) | 2021.04.09 |
---|---|
[ ORACLE ] 자료형 참조하는 %TYPE 퍼센트타입 │ %ROWTYPE 로우퍼센트타입 (0) | 2021.04.09 |
[ ORACLE ] PL / SQL (0) | 2021.04.08 |
[ ORACLE ] DELETE │ VIEW (0) | 2021.04.08 |
[ ORACLE ] UPDATE : 테이블에서 기존 데이터를 변경 + 업데이트 실수를 백업테이블로 다시 수정하기 (0) | 2021.04.07 |