我创建了一个触发器,当“Stock”表中的“Quatite”列更新时,可以在名为“Reapprovisionnement”的表中添加新行
Create or Replace trigger Reap
after update of quantite on stock for each row
when (new.quantite <new.limite)
declare
x varchar(20);
BEGIN
select distinct Nom into X
from produit
where Code = :new.codeProduit;
insert into Reapprovisionnement values (X, :new.CodeProduit);
END;
此触发器编译并创建时没有错误。
但是当我发出
时Update Stock set Quantite = 0 where CodeProduit = 'det_isis'
我得到"Quantite" value 0 is illegal
,因此这里的触发器应该通过在“Approvisionnement”中创建一个新行来完成它的工作;然而,当我尝试这里时,我得到的是
ERROR at line 1:
ORA-04098: trigger 'SYSTEM.REAPROV' is invalid and failed re-validation
通常,我在创建带有编译错误的触发器时会出现此错误,但这次触发器是正常创建的,没有错误或任何错误。
答案 0 :(得分:0)
发表我的评论作为答案,因为它解决了OP的问题。
您创建名为REAP的触发器,并将消息创建为REAPROV。
禁用/删除旧的。它应该工作正常。