728x90
반응형
SMALL
PL/SQL의 조건문
동작 방식은 흔히 알고 있는 IF문과 동일하다. 단지 문법만 조금 다를 뿐이다.
단일 IF 문
IF 조건식 THEN 실행내용 END IF;
IF / ELSE 문
IF 조건식 THEN 실행내용
ELSE 실행내용;
END IF;
IF-ELSIF-ELSE 문
IF 조건식 THEN 실행내용
ELSIF 조건식 THEN 실행내용
ELSE 실행내용;
END IF;
예시
DECLARE
EID EMPLOYEE.EMP_ID%TYPE;
ENAME EMPLOYEE.EMP_NAME%TYPE;
SAL EMPLOYEE.SALARY%TYPE;
BONUS EMPLOYEE.BONUS%TYPE;
BEGIN
SELECT EMP_ID, EMP_NAME, SALARY, NVL(BONUS, 0)
INTO EID, ENAME, SAL, BONUS
FROM EMPLOYEE
WHERE EMP_ID = &사원번호;
IF BONUS = 0 THEN DBMS_OUTPUT.PUT_LINE('보너스를 받지 않는 사원입니다.');
ELSE DBMS_OUTPUT.PUT_LINE('보너스 : ' || BONUS);
END IF;
END;
/
DECLARE
SCORE NUMBER;
GRADE CHAR(1);
BEGIN
SCORE := &점수;
IF SCORE >= 90 THEN GRADE := 'A';
ELSIF SCORE >= 80 THEN GRADE := 'B';
ELSIF SCORE >= 70 THEN GRADE := 'C';
ELSIF SCORE >= 60 THEN GRADE := 'D';
ELSE GRADE := 'F';
END IF;
IF GRADE = 'F' THEN DBMS_OUTPUT.PUT_LINE('재평가 대상입니다.');
ELSE DBMS_OUTPUT.PUT_LINE('점수는 ' || SCORE || '이고, 등급은 ' || GRADE || '입니다.');
END IF;
END;
/
75 입력 후..
CASE - WHEN - THEN 문
CASE 비교대상
WHEN 비교값1 THEN 결과값1
WHEN 비교값2 THEN 결과값2
...
ELSE 결과값N
END;
흔히 알고 있는 SWITCH 문과 비슷하다.
DECLARE
EMP EMPLOYEE%ROWTYPE;
DTITLE VARCHAR2(20);
BEGIN
SELECT *
INTO EMP
FROM EMPLOYEE
WHERE EMP_ID = '&사번';
DTITLE := CASE EMP.DEPT_CODE
WHEN 'D1' THEN '인삭관리부'
WHEN 'D2' THEN '회계관리부'
WHEN 'D3' THEN '마케팅부'
WHEN 'D4' THEN '국내영업부'
WHEN 'D5' THEN '해외영업1부'
WHEN 'D6' THEN '해외영업2부'
WHEN 'D7' THEN '해외영업3부'
WHEN 'D8' THEN '기술지원부'
WHEN 'D9' THEN '총무부'
END;
DBMS_OUTPUT.PUT_LINE(EMP.EMP_NAME || ' 사원의 소속부서는 ' || DTITLE || '입니다.');
END;
/
728x90
반응형
LIST
'데이터베이스' 카테고리의 다른 글
[ORACLE] PL/SQL 예외처리 - EXCEPTION (1) | 2025.03.17 |
---|---|
[ORACLE] PL/SQL 반복문 - 기본 LOOP, FOR LOOP, WHILE LOOP (0) | 2025.03.17 |
[ORACLE] PL/SQL - PL/SQL 구조와 변수 (0) | 2025.03.17 |
[ORACLE] SQL - 시퀀스(SEQUENCE) (0) | 2025.03.17 |
[ORACLE] SQL - 뷰(VIEW) (0) | 2025.03.17 |