4.2 UPDATE

출처 http://www.gurubee.net/lecture/1052

아래는 특정 사원의 급여를 일정 퍼센트(%) 인상/인하 하는 프로시저 예제이다.

UPDATE 예제

 
SQL> CREATE OR REPLACE PROCEDURE Update_Test
        ( v_empno  IN   emp.empno%TYPE,    -- 급여를 수정한 사원의 사번
         v_rate   IN   NUMBER )           -- 급여의 인상/인하율

        IS

         -- 수정 데이터를 확인하기 위한 변수 선언
        v_emp  emp%ROWTYPE ;

        BEGIN

        DBMS_OUTPUT.ENABLE;

        UPDATE emp
        SET sal = sal+(sal * (v_rate/100))   -- 급여를 계산
        WHERE empno = v_empno ;

       COMMIT;
		
        DBMS_OUTPUT.PUT_LINE('데이터 수정 성공 ');

        -- 수정된 데이터 확인하기 위해 검색 
        SELECT empno, ename, sal
        INTO v_emp.empno, v_emp.ename, v_emp.sal
        FROM emp
        WHERE empno = v_empno ;

        DBMS_OUTPUT.PUT_LINE( ' **** 수 정 확 인 **** ');
        DBMS_OUTPUT.PUT_LINE( '사원번호 : ' || v_emp.empno );
        DBMS_OUTPUT.PUT_LINE( '사원이름 : ' || v_emp.ename );
        DBMS_OUTPUT.PUT_LINE( '사원급여 : ' || v_emp.sal );

        END ;
        /

-- DBMS_OUTPUT.PUT_LINE을 출력하기 위해 사용
SQL> SET SERVEROUTPUT ON ;  

-- 7900번 사원의 급여를 10% 인하 한다.
SQL> EXECUTE Update_Test(7900, -10);

데이터 수정 성공
**** 수 정 확 인 ****
사원번호 : 7900
사원이름 : JAMES
사원급여 : 855
        

답글 남기기 0

Your email address will not be published. Required fields are marked *