Oracle PL/SQL 강좌
UPDATE 9 9 57,442

by 김정식 PL/SQL UPDATE [2002.01.20]


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

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 ora [2006.06.16 15:52:59]
^^따라하면서 공부하니까 훨씬...잘들어오는거 같습니다.
수고하시고 너무 감사해요!!^^

by 손 [2007.02.08 17:22:07]
커밋 안찍나요?

by 쩡 [2007.07.09 16:59:51]
프로시저는 수행 후 오류가 발생하지 않으면 자동 COMMIT 된다그하네요~

by 김윤경 [2007.11.08 17:07:30]
아~ 자동으로 커밋이 되는군요.
몰랐는데 감사해요^^!;

by 무리 [2008.04.29 23:29:49]
아하. ㅜ

by 허브티 [2009.06.17 15:43:36]
자동 커밋안됩니다. Rollback 해보세요 원래 상태로 돌아갑니다..

by 길로 [2010.01.28 16:24:25]
근데, 프로시저 안에서

테이블의 제약조건을 풀어주거나 걸어줄 수는 없나요?

disable 이나 enable같은.. . .

외부키가 걸린 값은
어떻게 update하나요 ? ?

알려 주세요 ㅠㅠㅠㅠㅠ

by 현 [2010.01.29 15:06:20]
프로시져 안에서 dml뿐만 아니라 ddl을 그냥 하시면 됩니다.
권한만 있으시면,
alter table 테이블명 nologging; 이런식으로요.

외부키가 걸린 컬럼은 그냥 update하시면 됩니다.
뭐가 궁금하신건지?

by 프리어 [2011.10.18 22:42:25]
잘봤습니다. ^^ㅋㅋ
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입