EMP_9테이블을 작성 , 컬럼 추가 REALSAL 타입은 숫자형이다.
이 프로시저는 어떤 사원번호를 넣더라도 해당 사원번호의 월급의 200% +커미션의 10%를 준다
단, 커미션이 300원보다 작다면 커미션은 일괄 300으로 지급한 값을 INSERT 한다.
만약에 이전에 해당 사원의 정보가 EMP_9 테이블에 존재한다면 먼저 삭제 한 후에,
해당 정보는 삭제 후에 다시 넣어준다.
--프로시저 부분
CREATE OR REPLACE PROCEDURE SCOTT.sp_Ex2(P_EMPNO IN NUMBER) IS
tmpVar NUMBER;
BEGIN
DELETE FROM EMP_9
WHERE EMPNO = P_EMPNO;
INSERT INTO EMP_9 ( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO , REALSAL)
SELECT EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO ,
(CASE WHEN NVL(COMM,0) <= 300 THEN SAL*2+300
ELSE SAL*2+ NVL(COMM,0)*0.1END) REALSAL
FROM EMP
WHERE EMPNO = P_EMPNO;
COMMIT;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
-- Consider logging the error and then re-raise
RAISE;
END sp_Ex2;
/
/
-- 출력
SELECT *
FROM EMP_9;
-- 7566번 사원 추가
EXEC sp_Ex2 (7566);