Mutacja ma miejsce za każdym razem, gdy masz wyzwalacz na poziomie wiersza, który modyfikuje tabelę, w której wyzwalasz. Problem w tym, że Oracle nie wie, jak się zachować. Wstawiasz wiersz, sam wyzwalacz wstawia wiersz do tego samego tabeli, a Oracle jest zdezorientowany, ponieważ te wstawienia do tabeli z powodu wyzwalacza, czy one również podlegają działaniu wyzwalacza?
Rozwiązaniem jest trzyetapowy proces.
1.) Poziom instrukcji przed wyzwalaczem, który tworzy instancję pakietu, który będzie śledził wstawiane wiersze.
2.) Na poziomie wiersza przed lub po wyzwalaczu, który zapisuje informacje o wierszu w zmiennych pakietu, które zostały utworzone w poprzednim kroku.
3.) Poziom instrukcji po wyzwalaczu, który wstawia do tabeli wszystkie wiersze zapisane w zmiennej pakietowej.
Przykład tego można znaleźć tutaj:
http://asktom.oracle.com/pls/asktom/ASKTOM .download_file?p_file=6551198119097816936
Mam nadzieję, że to pomoże.