Mutation sker hver gang du har en trigger på rækkeniveau, der ændrer den tabel, du udløser på. Problemet er, at Oracle ikke kan vide, hvordan man opfører sig. Hvis du indsætter en række, indsætter triggeren selv en række i samme tabel, og Oracle bliver forvirret, årsag, disse indsættelser i tabellen på grund af triggeren, er de også underlagt triggerhandlingen?
Løsningen er en tre-trins proces.
1.) Udsagnsniveau før trigger, der instansierer en pakke, der vil holde styr på de rækker, der indsættes.
2.) Rækkeniveau før eller efter trigger, der gemmer rækkeoplysningerne i de pakkevariabler, der blev instantieret i det forrige trin.
3.) Udsagnsniveau efter trigger, der indsætter i tabellen, alle de rækker, der er gemt i pakkevariablen.
Et eksempel på dette kan findes her:
http://asktom.oracle.com/pls/asktom/ASKTOM .download_file?p_file=6551198119097816936
Håber det hjælper.