在想实现如下功能,在插入一条记录前检查记录的值,不符合条件,则不让插入该记录。我使用trigger+procedure不采用抛出EXCEPTION的方式。而是捕捉异常,自行处理掉,好像无法实现,因为TRIGGER属于插入记录这个事务,用触发器没办法控制实现触发器外层的事物提交。我用触发器和存储过程测试过了,在触发器或者存储过程中使用ROLLBAKC 和COMMIT没有效果,结果是记录依然插入进去了,因为不能靠抛出异常来使记录插入失败。可有高人知道有其它在数据库中实现该功能的吗?先插入临时表再插入正式表的方式不能用在投运的系统上了。所以请不要用这种方式来解决。
create or replace trigger .....
is
...
pragma autonomous_transaction;
...
begin
在你的代码里,就可以自己commit和rollback了。