The DML events clause of a trigger is not meant to be used with multiple OF
conditions. When it is, only the last one will actually be
taken into account, without any error message being produced. This can lead to counter-intuitive code.
Only the UPDATE
event should have an OF
condition, and there should be at most one occurence of it.
Noncompliant code example
CREATE OR REPLACE TRIGGER myTrigger
BEFORE UPDATE OF firstName OR UPDATE OF lastName -- Noncompliant - will *only* be triggered on updates of lastName!
ON myTable
FOR EACH ROW
BEGIN
NULL;
END;
/
Compliant solution
CREATE OR REPLACE TRIGGER myTrigger
BEFORE UPDATE OF firstName, lastName -- Compliant - triggered on updates of firstName or/and lastName
ON myTable
FOR EACH ROW
BEGIN
NULL;
END;
/