[ORACLE]プロシージャの例

1003 ワード

EMP 9表、プラス列REALALALタイプはデジタルタイプ.
このプログラムは、どんな従業員番号を付けても、その従業員番号の給料の200%+コミッションの10%を与えます.
しかし、コミッションが300元未満の場合、コミッションは300元の価格で統一的に支払われます.
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);