Wednesday 21 March 2012

Deleted Records Backup script using Trigger in Oracle

Deleted Records Backup Script using Trigger in Oracle

Create Table Script to Backup the Deleted Records
CREATE TABLE xx_trg_test(trx_id NUMBER, trx_number VARCHAR2(30),trx_date DATE, delete_date date, deleted_by VARCHAR2(30)) 

Delete Script to Delete the Records
delete from ra_customer_trx_all where  CUSTOMER_TRX_ID=1083


Sample trigger for Backup the Deleted records after Deleting
CREATE OR REPLACE TRIGGER trx_orders_before_delete
   BEFORE DELETE
   ON ra_customer_trx_all
   FOR EACH ROW
DECLARE
   v_username   VARCHAR2 (10);
BEGIN
   -- Find username of person performing the DELETE on the table
   SELECT USER
     INTO v_username
     FROM DUAL;

   -- Insert record into audit table
   INSERT INTO xx_trg_test
               (trx_id, trx_number, trx_date,
                delete_date, deleted_by
               )
        VALUES (:OLD.customer_trx_id, :OLD.trx_number, :OLD.trx_date,
                SYSDATE, v_username
               );
END;

Check the original table for Deleted Records  

Select * from ra_customer_trx_all where  CUSTOMER_TRX_ID=1083  


Check the Deleted Records in Custom Table

Select * from xx_trg_test  




No comments:

Post a Comment