Триггер, который выдает DML (включая SELECT) для той же таблицы, которая владеет триггером, вызывает призрак ORA-4091, исключение мутирующей таблицы.Oracle выдает эту ошибку, потому что ожидает, что результат транзакции будет детерминированным, и триггер, который выдает DML на своей собственной таблице, вносит неопределенность в процедуры.
Таблица мутаций является надежным индикатором плохого дизайна, в частности, плохогомодель данных, и это, кажется, имеет место здесь.
Если величина штрафа зависит от результата одного наблюдения, тогда FINE может быть столбцом в таблице OBSERVACION.Однако ваши бизнес-правила указывают, что значение может зависеть от нескольких наблюдений, если они попадают в определенный период.В этом случае штраф должен быть в отдельной таблице.Вам потребуется внешний ключ между OBSERVACION и MULTA, чтобы указать, какие наблюдения покрываются конкретным штрафом.