Question on Insert Trigger

From: <zigzagdna_at_yahoo.com>
Date: Thu, 6 Mar 2008 13:48:46 -0800 (PST)
Message-ID: <0d2f2afa-9bfc-4400-91a7-0e68f984ffad@p73g2000hsd.googlegroups.com>


I am using 10.2.0.3 on HP UNIX 11i.

I have a third party application where I do not have access to code. When rows are inserted in a table, I do not want certain rows to be inserted . Rest of the rows should be inserted. Is it is possible to do this using a trigger.

I wrote a trigger like following. This trigger is for illustrative purposes; conditions for filtering are more complex.

create or replace trigger emp_aftins
after INSERT ON employee
for each row

declare
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN if (:new.name is null) then

   dbms_output.put_line(:new.wwid || 'name' || :new.name);    rollback;
else

    commit;
end if;

END;
/

I was hoping that when I do rollback that row will not be inserted. I found that
Dbms_output before rollback is exceuted, then rollback is exceuted, yet row is being inserted.

If I try to delete a row instead of rollback, I get mutating table error.

Appreciate any help.

Thanks a lot. Received on Thu Mar 06 2008 - 15:48:46 CST

Original text of this message