본문 바로가기

IT/오라클

Oracle PL/SQL 강좌 4.2. UPDATE

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

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
        

태그

문서에 대하여

  • - 강좌 URL : http://www.gurubee.net/lecture/1052
  • - 이 문서를 다른 블로그나 홈페이지에 게재하실 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
  • 구루비의 모든 강좌는 크리에이티브 커먼즈의 저작자표시-비영리-동일조건변경허락(BY-NC-SA) 라이선스에 따라 자유롭게 사용할 수 있습니다.