제어 문 (선택문)
IF THEN END IF
IF THEN ELSE END IF
IF THEN ELSIF
IF
- 조건에 따라 어떤 명령을 선택적으로 처리
DECLARE -- 선언부
--변수 선언
GRADE CHAR(10);
RESULT VARCHAR2(30);
BEGIN -- 실행부
GRADE := 'B'; --값을 대입
IF GRADE = 'A'THEN --비교연산자 (=)
RESULT := 'A학점';
ELSIF GRADE = 'B'THEN
RESULT := 'B학점';
ELSIF GRADE = 'C'THEN
RESULT := 'C학점';
ELSE
RESULT := '제적';
END IF;
DBMS_OUTPUT.PUT_LINE('학점 : '||GRADE||'=>'||RESULT);
EXCEPTION -- 예외처리부
WHEN OTHERS THEN -- 알수없는 에러
DBMS_OUTPUT.PUT_LINE('에러발생');
END;
/
CASE
- 범위가 아닌 값이 오는 경우
DECLARE
GRADE CHAR(5);
RESULT VARCHAR2(20);
BEGIN
GRADE := 'B';
CASE GRADE
WHEN 'A' THEN
RESULT :='A학점';
WHEN 'B' THEN
RESULT :='B학점';
WHEN 'C' THEN
RESULT :='C학점';
WHEN 'D' THEN
RESULT :='D학점';
ELSE
RESULT := '제적';
END CASE;
DBMS_OUTPUT.PUT_LINE('학점정보 : '||GRADE||'='||RESULT);
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('에러발생');
END;
반복문
BASIC LOOP
FOR LOOP
WHILE LOOP
FOR
DECLARE
I NUMBER :=0; -- 변수 초기화
RES NUMBER :=0;
BEGIN
FOR I IN 1..10 LOOP --1부터 10까지의 숫자
RES := I*2;
DBMS_OUTPUT.PUT_LINE(RES);
END LOOP;
END;
/
WHILE
- 카운터 변수가 필요하다
DECLARE
I NUMBER :=0;
RES NUMBER :=0;
BEGIN
I :=1;
WHILE I<=10 LOOP
RES := I*2;
DBMS_OUTPUT.PUT_LINE(RES);
I := I+1;
END LOOP;
END;
/
무한루프
DECLARE
V_NUM NUMBER :=0;
RES INT :=0;
BEGIN
V_NUM:=1;
LOOP
RES := RES+V_NUM;
IF V_NUM > 10 THEN
EXIT;
END IF;
V_NUM := V_NUM+1;
DBMS_OUTPUT.PUT_LINE(RES);
END LOOP;
END;
/
'SQL > ORACLE SQL' 카테고리의 다른 글
PROCEDURE : 프로 시저 (0) | 2022.11.14 |
---|---|
PL/SQL : 커서 CURSOR (0) | 2022.11.11 |
PL/SQL : 변수 선언 (0) | 2022.11.11 |
VIEW : 뷰 (0) | 2022.11.10 |
제약 조건 : CHECK, DEFAULT (0) | 2022.11.10 |