PL/SQL의 선택문
예제) 부서번호로 부서명 알아내기
DECLARE
VEMPNO NUMBER(4);
VENAME VARCHAR2(20);
VDEPTNO EMP.DEPTNO%TYPE;
VDNAME VARCHAR2(20) := NULL;
BEGIN
SELECT EMPNO, ENAME, DEPTNO
INTO VEMPNO, VENAME, VDEPTNO
FROM EMP
WHERE EMPNO = 7788;
IF(VDEPTNO = 10) THEN
VDNAME := 'ACCOUNTING';
END IF;
IF(VDEPTNO = 20) THEN
VDNAME := 'RESEARCH';
END IF;
IF(VDEPTNO = 30) THEN
VDNAME := 'SALES';
END IF;
IF(VDEPTNO = 40) THEN
VDNAME := 'OPERATIONS';
END IF;
DBMS_OUTPUT.PUT_LINE('사번 이름 부서명');
DBMS_OUTPUT.PUT_LINE(VEMPNO||'/'||VENAME||'/'||VDNAME);
END;
/
문제) 연봉구하기 문제. 연봉 계산을 위해 '급여*12+커미션' 이라는 공식을 사용한다.
예제) 부서번호로 부서명 알아내기
DECODE 함수 대신에 IF~THEN~ELSIF~ELSE~END IF 구문으로 부서번호에 대한 부서명 구하기
DECLARE
VEMP EMP%ROWTYPE;
VDNAME VARCHAR2(14);
BEGIN
DBMS_OUTPUT.PUT_LINE('사번 / 이름 / 부서명');
DBMS_OUTPUT.PUT_LINE('---------------------');
SELECT * INTO VEMP
FROM EMP
WHERE ENAME = 'SCOTT';
IF(VEMP.DEPTNO = 10) THEN
VDNAME := 'ACCOUNTING';
ELSIF (VEMP.DEPTNO = 20) THEN
VDNAME := 'RESEARCH';
ELSIF (VEMP.DEPTNO = 30) THEN
VDNAME := 'SALES';
ELSIF (VEMP.DEPTNO = 40) THEN
VDNAME := 'OPERATIONS';
END IF;
DBMS_OUTPUT.PUT_LINE(VEMP.EMPNO||'/'||VEMP.ENAME||'/'||VDNAME);
END;
/
'오라클 기초' 카테고리의 다른 글
PL/SQL 저장 프로시저(PROCEDURE), 함수(FUNCTION), 커서(CURSOR) (0) | 2016.01.20 |
---|---|
PL/SQL 반복문: BASIC LOOP, FOR LOOP, WHILE LOOP (1) | 2016.01.20 |
PL/SQL 대입문: SELECT INTO, TABLE TYPE, RECORD TYPE (0) | 2016.01.20 |
동의어 (SYNONYM, 시노늄) (0) | 2016.01.20 |
사용자 관리, 권한 제어: GRANT, REVOKE, 스키마, 롤 (0) | 2016.01.20 |