[ORACLE] 프로시저 예제

Yujin·2021년 9월 10일
0

데이터베이스

목록 보기
5/5

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);
profile
개발꿈나무

0개의 댓글

관련 채용 정보