DB/ORACLE

23.[오라클]PL/SQL제어문 정리

혼자좀비 2024. 2. 20. 18:50

※PL/SQL제어문 정리

제어문 설명 예시
IF문 IF 조건 THEN
   조건처리
END IF;


->위와 같이 DECLARE후 IF문을 쓴다.
CASE문 CASE문은 2가지 형식으로 처리 가능
1.CASE 표현식
     WHEN 결과1 THEN 처리문1;
     WHEN 결과2 THEN 처리문2;
     ELSE 기타 처리문;
   END CASE;

2.CASE THEN 표현식1 THEN 처리문1;
              THEN 표현식2 THEN 처리문2;
              ELSE 기타 처리문;
   END CASE;


->위의 IF문과 같은 결과를 얻을수 있음.
LOOP문 LOOP
     처리문;
    EXIT [WHEN 조건];
END LOOP;

->3단에 대한 부분을 위와 같이 처리
LOOP
DBMS_OUTPUT.PUT_LINE (SAMPLE_NUMBER
||'*'|| SAMPLE_CNT || '=' || SAMPLE_NUMBER* SAMPLE_CNT);

SAMPLE_CNT :=SAMPLE_CNT+1; --1씩 증가
EXIT WHEN SAMPLE_CNT >9; --9이상일 경우 멈춤
END LOOP;
위와 같이 EXIT WHEN조건에 맞을 경우 빠져나가게 한다.
WHILE문 WHILE 조건
      LOOP
        처리문;
     END LOOP;

-> 위의 조건에서 다른점은  EXIT [WHEN 조건];문을 안썼다는것이다.
만약 중간에 LOOP문을 빠져 나오고 싶으면 LOOP문에  EXIT [WHEN 조건];부분을 넣어주면 LOOP문을 빠져나오게 할수 있다.


->위의 이미지 처럼 EXIT WHEN조건절을 통해 중간에 빠져나오게 할수 있다.
FOR문 FOR 인덱스 IN [REVERSE]초기값..최종값
LOOP
    처리문;
END LOOP;

->위와 같이 for문을 실행하여 3단을 출력할수 있다.


->위와 같이 REVERSE를 사용하면 역순으로 출력이 가능하다.
CONTINUE문 반복문내에 특정 조건에 부합할때 처리로직을 건너뛰고 상단의 루프조건으로 건너가 루프를 계속 수행할 때 사용.
(제어범위가 조건절로 넘어간다.)

※오라클 11G부터 지원한다.



->위와 같이 continue문을 쓰게 되면 해당 조건에 충족되는 부분을 제외하고 다시 반복문을 실행한다.
GOTO문 지정하는 라벨로 제어가 넘어간다.

->위의 이미지에서 값이 3일 경우GOTO fourth라벨로 되어있어 라벨인 fourth로 이동하여 for문을 실행하고 있다.


 

'DB > ORACLE' 카테고리의 다른 글

25.[오라클]프로시저 정리  (0) 2024.02.20
24.[오라클]PL/SQL 사용자 함수(FUNCTION)  (0) 2024.02.20
22.[오라클]다중INSERT하기  (0) 2024.02.18
21.[오라클]분석함수와window  (0) 2024.02.14
20.[오라클]WITH절  (0) 2024.02.14