Sql 更新前oracle触发器失败

Sql 更新前oracle触发器失败,sql,oracle,Sql,Oracle,我在oracle数据库上创建了一个审计触发器来跟踪这样的更改 CREATE or REPLACE TRIGGER trigger_name after UPDATE ON table_name FOR EACH ROW BEGIN INSERT INTO mytable VALUES (:old.table_name,:new.table_name,sysdate); delete from mytable where column_date+30>sysdate;

我在oracle数据库上创建了一个审计触发器来跟踪这样的更改

CREATE or REPLACE TRIGGER trigger_name 
after UPDATE  
ON table_name 
FOR EACH ROW 
BEGIN 
    INSERT INTO mytable
VALUES (:old.table_name,:new.table_name,sysdate);
delete from mytable where column_date+30>sysdate;


END; 
/ 
我只需要一个月的数据,所以我使用了代码:

delete from mytable where column_date+30> sysdate;

触发器工作正常,表上的更新突然停止。 我尝试添加异常,如:

EXCEPTION  
WHEN OTHERS THEN
null;
但它不起作用,所以我不得不扣动扳机。
那么什么是错误的,如何解决呢?

您所说的“表上的更新已停止”是什么意思?请举一个你所做的事情的例子,试图更好地解释这个问题:你是否有一个错误,一个意外的行为?如果您将where子句更改为
where column_date>sysdate-30
@Mohamed Elsaba,您可能还想了解一下,删除将更加高效(即,它可以使用索引),如果您在
语句级触发器
而不是行级触发器上编写delete语句,那么最好记录异常以查看某个地方“表上的更新已停止”,这意味着我无法更新表时出错