Monday, December 14, 2015

Testing Oracle trigger firing before or after transaction control statements

create table vsk_test1 (col1 varchar2(100));

create table vsk_audit1 (audit1 varchar2(100));

CREATE OR REPLACE TRIGGER VSK_TEST1_TRG 
BEFORE INSERT OR DELETE OR UPDATE of col1 ON VSK_TEST1 
REFERENCING OLD AS old NEW AS new 
FOR EACH ROW 
BEGIN
  insert into vsk_audit1 (audit1) values (systimestamp || :new.col1);
END;

insert into vsk_test1 (col1) values ('aaaaaaaaaaa');
rollback;
select * from vsk_test1;
select * from vsk_audit1;

drop table vsk_test1;

drop table vsk_audit1;