文档解释
ORA-04078: OLD and NEW values cannot be identical
Cause: The referencing clause specifies identical values for NEW and OLD.
Action: Re-specify either the OLD or NEW referencing value.
ORA-04078:
Old and new values cannot be identical是Oracle数据库抛出的一个错误消息。这个错误指出了尝试在一个表中进行Update操作时,新值和旧值相同。另外,它还可以抛出在用户访问存储在表中的记录时,在存储过程中的语句。
官方解释
ORA-04078是一个触发器错误,它表明在Update或Insert操作之前,新值和旧值相同。在Oracle数据库中,每个操作都必须放置它自身的值,所以不允许Old值与New值一致。
常见案例
ORA-04078通常由于尝试更新表时使用了相同的新值和旧值而引起的。此外,当触发器的编写的不当也可能导致此属性。例如,如果触发器对更新过的新值和旧值进行了检查,而没有检查语句,那么可能会出现这个错误。
正常处理方法及步骤
处理ORA-04078错误最简单的方法就是检查更新语句是否正确。确认新值和旧值不完全相同,并且编写正确的触发器以避免此类错误。如果仍然存在错误,请检查是否存在其他类型的操作,例如Insert,Delete等,并确认新值不同于旧值。