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 |