③ 단일 로우 DELETE

    DELETE문 역시 UPDATE문과 동일한 방식으로 RETURNING INTO 절을 사용해 삭제된 로우 정보를 가져올 수 있다. 먼저 단일 로우를 삭제하는 DELETE문을 살펴 보자. 사원 테이블을 복사한 emp_bk 테이블을 만들어 삭제해 보자.

    입력

        CREATE TABLE emp_bk AS
        SELECT *
          FROM employees;
    

    결과

        table EMP_BK이(가) 생성되었습니다.
    

    입력

        DECLARE
          vn_salary   NUMBER := 0;
          vs_empname  VARCHAR2(30);
        BEGIN
          -- 171번 사원 삭제
          DELETE emp_bk
           WHERE employee_id = 171
          RETURNING emp_name, salary
               INTO vs_empname, vn_salary;
    
          COMMIT;
    
          DBMS_OUTPUT.PUT_LINE('삭제 사원명 : ' || vs_empname);
          DBMS_OUTPUT.PUT_LINE('삭제된 급여 : ' || vn_salary);
        END;
    

    결과

        삭제사원명 : William Smith
        삭제된급여 : 7400
    

    171번 사원이 삭제됐지만 RETURNING INTO 절을 사용해 삭제된 사원의 정보를 가져왔다. 위 예제에서는 사원명과 급여만 가져왔지만 삭제된 로우의 어느 컬럼이라도 그 값을 변수에 담아 올 수 있다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.