DB_SQL_반복문

BBBeom·2022년 11월 10일

DB

목록 보기
18/18

PL/SQL 반복문

JAVA와 마찬가지로 PL/SQL에서도 반복문을 지원해준다

세가지 종류가있으며 각각 어떻게 사용하는지 알아보자

BEGIN절 안에서 반복하고 싶은 작업을 만들어야할때 사용하면 좋다

1. LOOP

- 문법

DECLARE
선언부
BEGIN
	LOOP
    반복할 작업
    EXIT WHEN 조건부분 -- 해당조건이 TRUE일 경우 반복문 탈출
    END LOOP; -- 루프의 마지막부분
END;
/

EXIT WHEN 조건부분이 없다면 무한루프에 빠지게 되니 주의

- 예제

DECLARE
	NUM1 NUMBER :=1; -- BEGIN절에서 쓰려고 하는 변수 설정
BEGIN
	LOOP
    DBMS_OUTPUT.PUT_LINE(NUM1);  -- 출력기능
    NUM1 := NUM1+1; -- 변수에 +1이라는 작업을함
    EXIT WHEN NUM1 >10;	-- 조건이 TRUE면 반복문탈출
    END LOOP;
END;
/

NUM1은 반복할때마다 +1씩 증가하게 되고 출력도 반복할때마다 한번씩 출력한다
그러다 NUM1이 10보다 커진다면 LOOP의 조건절이 TRUE가 되기때문에 반복을 종료하고 탈출한다
결과값은 1부터 10까지 출력된다



2. WHILE

- 문법

DECLARE
선언부
BEGIN
    WHILE(조건식)
    LOOP
	반복할 작업
    [EXIT WHEN 조건식]
    END LOOP;
END;

LOOP에서 조건부분이 WHILE로 옮겨졌을 뿐이지 기능적으로 똑같다
조건식이 TRUE면 LOOP를 탈출한다
추가로 EXIT WHEN 을 이용해 조건을 붙이는것도 가능하다
※ 조건식의 경우 결과값이 항상 TRUE 혹은 FALSE값이 나와야 한다는것을 잊지말자

- 예제

DECLARE
	NUM1 NUMBER :=1;
BEGIN
    WHILE(NUM1<10) --NUM이 10보다 작을때까지 LOOP실행
    LOOP
    DBMS_OUTPUT.PUT_LINE(NUM1); --출력
    NUM1 := NUM1+1; --NUM = NUM +1
    END LOOP;
END;

1부터 9까지 출력되는 PL/SQL문인데 읽는 방식의 차이가 있다는걸 깨달아야한다

WHILE 안의 조건이 TRUE면 반복문 실행
EXIT WHEN 뒤의 조건이 TRUE면 반복문 탈출

이 차이만 알고 있으면 된다

3. FOR

- 문법

DECLARE
BEGIN
    FOR I IN 1..9
    LOOP
    DBMS_OUTPUT.PUT_LINE('안녕하세요'); --출력
    END LOOP;
END;
profile
BackEnd_BasketBall_Beom

0개의 댓글