Oracle PL/SQL 강좌
DELETE 7 19 32,415

by 김정식 PL/SQL DELETE [2002.01.20]


  아래는 특정 사원 정보를 삭제하는 프로시저 예제이다.

DELETE 예제

 
SQL> CREATE OR REPLACE PROCEDURE Delete_Test
    ( p_empno IN  emp.empno%TYPE )

        IS

        -- 삭제 데이터를 확인하기 레코드 선언 
        TYPE del_record IS  RECORD
        ( v_empno      emp.empno%TYPE,
          v_ename      emp.ename%TYPE,
          v_hiredate    emp.hiredate%TYPE) ;

          v_emp  del_record ;

        BEGIN

        DBMS_OUTPUT.ENABLE;

         -- 삭제된 데이터 확인용 쿼리 
         SELECT empno, ename, hiredate
         INTO v_emp.v_empno, v_emp.v_ename, v_emp.v_hiredate
         FROM emp
         WHERE empno = p_empno ;

        DBMS_OUTPUT.PUT_LINE( '사원번호 : ' || v_emp.v_empno );
        DBMS_OUTPUT.PUT_LINE( '사원이름 : ' || v_emp.v_ename );
        DBMS_OUTPUT.PUT_LINE( '입 사 일 : ' || v_emp.v_hiredate );

        -- 삭제 쿼리 
        DELETE
        FROM emp
        WHERE empno = p_empno ;

        COMMIT;
        
        DBMS_OUTPUT.PUT_LINE( '데이터 삭제 성공 ' );

       END;
 / 

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

-- 7900사원을 삭제
SQL> EXECUTE Delete_Test(7900);
사원번호 : 7900
사원이름 : JAMES
입 사 일 : 81/12/03
데이터 삭제 성공
        

- 강좌 URL : http://www.gurubee.net/lecture/1053

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

by 시근땀 [2006.03.22 10:33:51]
뒤로갈수록 메모를 남기는 사람들이 줄어드는 이유는 뭘까요?
벌써 포기하신거에요?
조금만 더 해보세요. 저도 이렇게 하고 있잖아요.
지금은 완전히 다 이해할 수는 없어도, 열심히 하다보면 언젠가는
DB를 주물럭주물럭 할 수 있는 때가 오겠죠. 안그래요?

by 걸음마 [2006.03.23 16:57:22]
delete 문 다음에 왜 commit이 없는걸까요?

by 김정식 [2006.04.03 14:44:07]
COMMIT를 해주는 것이 정상이죠..
빼먹었네요.. ^^

by 무학이 [2006.06.28 12:14:13]
시근땀님 때문이라도 계속 꾸준히 해야겠습니다. ㅋㅋ
잼있네요.

by 엽 [2006.09.27 11:52:19]
SET SERVEROUTPUT ON ; 을 해도
결과값이 보이지 않는 건 왜 그런가요 ?
실행만 되고 맙니다.

by 냐옹 [2006.10.12 17:33:49]
아규먼트를 보심이....

by 오빠빠 [2006.11.14 17:42:44]
밥사주믄 안 잡아먹지^^
오라클 DBA 구합니다 연락주세요

by 나는 [2007.04.10 09:40:04]
에고에고...여기까지 와서야 테이블과 레코드 rowtype이 뭔지 알겠네요..
전 왜이렇게 진도가 늦을까요...ㅜ.ㅜ

by 외Rony [2007.09.05 11:08:51]
처음엔 잘 몰랐는데 하다보니 이해하게 되네요^^ 모두 힘내세요 !!

by 디스타임 [2007.11.06 15:28:03]
외rony말씀처럼 첨 pl/sql할때는(정확하게는 볼때는) 이해가 안갔는데
직접 쳐보니 이해가 가네요. 물론 제스스로 추측하는 것도 있지만(맞는지는 모르져-..-)..^^

by 디스타임 [2007.11.06 15:29:33]
오라클이 설치되어 있지 않아도 메모장에 쳐보면 이해가 갈겁니다.
저도 그냥 메모장에 치면서 하고 있어요 ㅋㅋ
모두 즐겁게 공부하세요.

by 김윤경 [2007.11.08 17:21:12]
디스타임님 대단하세요.^^*
메모장에 쳐가며 학습을 하시다니...
오라클 설치된 저는 더 열심히 해야겠어요;;;
앞에서 어느 분이 프로시져에서는 commit 안해도 된다 하셨는데
여기서는 또 해야 된다고 하시네요.
sql*plu에서 실행해 삭제 후 토드에서 확인하니 그대로 보여서 다시 sql*plus에서 commit하니 토드에서도 제대로 나오네요.
commit을 하는게 맞나 봅니다.

by 무리 [2008.04.29 23:32:59]
김윤경님 감솨합니다.
여자친구 이름인가 봐요 ㅇㅇ

by 보태미 [2009.04.15 12:59:14]
저도 아래의 글을 읽으니 더 열심히 해야겠다는 의지가 생기네요

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

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

disable 이나 enable같은.. . .

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

알려 주세요 ㅠㅠㅠㅠㅠ

by 디스타임 [2010.04.08 16:01:25]
내가 예전에 저런 말을 하다니 난 오늘 첨 보는 건줄 알았는데 .. --
왜 맨날 올때마다 새로운 걸까?

by 겨리겸 [2011.03.02 14:13:44]
맞습니다. 주물럭주물럭~ㅋㅋㅋ
좋은 강의 감사합니다. :)

by 프리어 [2011.10.18 22:52:18]
강좌 잘봤습니다. ^^

by 신화씨앤씨 [2013.10.22 17:44:18]

많은 도움 됐어요.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입