본문 바로가기

Oracle

PL/SQL - 05 (SQL문)

SELECT, UPDATE, DELETE 등은 기존과 비슷하므로 생략하고 FOR LOOP문부터 공부하겠습니다.

FOR LOOP문

FOR index IN [REVERSE] 시작값 .. END값 LOOP
	statment 1
    statment 2
    ...
END LOOP;

index는 자동 선언되는 binary integer로 1씩 증가합니다. 

reverse 옵션이 사용되면 index는 증가하는 게 아니라 감소합니다 (upper_bound -> lower_bound)

IN 다음에는 coursor나 select문을 사용 가능합니다!

FOR LOOP문 예제

BEGIN
	FOR emp_list IN (SELECT ename, sal FROM emp WHERE deptno = 10) LOOP
    	i := i+1;
        ename_tab(i) := emp_list.ename ; -- 테이블에 사원 이름 저장
  	END LOOP;
  	FOR cnt IN 1..i LOOP
    	statment 1
        statment 2
        ...
    END LOOP;
END;
/

Loop문 while문

LOOP
    PL/SQL statment...
    다른 LOOP 포함하여 중첩 가능
    EXIT [WHEN condition]
END LOOP;

EXIT 문은 무조건 LOOP문을 빠져나가게 해 줍니다. ( 프로그래밍 언어의 break 같은 것인가 봅니다.)

EXIT WHEN을 사용하여 when절에서 loop를 빠져나가는 조건을 제어 가능합니다!(if문인가 봅니다.)

LOOP문 예제

BEGIN
    LOOP
      INSERT INTO abc(1,2,3) values(a, b, c);
      a := a+1;
      EXIT WHEN a > 100;
    END LOOP;
END;
/

WHILE LOOP 문 예제

WHILE a < 10 LOOP
	insert~ 
    a := a+1;
END LOOP;

a라는 변수가 10이 되면 반복문을 탈출할 겁니다.

반복문을 다 보았으니 이제는 조건문을 살펴볼 시간입니다~

오라클에서도 역시 if ~ else문을 사용하더라고요. 이미 프로그래밍 언어를 하나 이상 경험해보신 분이라면 금방 습득할 수 있을 것 같습니다.

IF문(조건 제어 문)

IF 조건 THEN
    statements
ELSEIF 조건 THEN
    statements
ELSE
    statements
END;

IF문 예제

BEGIN
    IF a <= 7000 THEN
       ~~
    ELSEIF a < 8000 THEN
       ~~
    ELSE
       ~~
    END IF;
END;
/

~~ 에는 조건이 일어나면 실행되는 문장들이 들어갑니다.

지금까지 plsql의 기본적인 문법들을 알아보았습니다.

다음 포스팅부터는 커서에 대해 알아보도록 하겠습니다.

 

 

* 이 포스팅은 아래 출처의 내용을 개인적인 공부를 위해 정리한 내용입니다.

출처 : http://www.gurubee.net/oracle/plsql

 

Oracle PL/SQL 강좌

 

www.gurubee.net

 

'Oracle' 카테고리의 다른 글

PL/SQL - 07(Exception)  (0) 2020.03.16
PL/SQL - 06(Cursor)  (0) 2020.03.16
PL/SQL - 04(테이블/레코드)  (0) 2020.03.16
PL/SQL - 03(데이터 타입)  (0) 2020.03.16
PL/SQL - 02(프로시저와 함수)  (0) 2020.03.16