Oracle
 sql >> Datenbank >  >> RDS >> Oracle

INSERT-Trigger zum Einfügen eines Datensatzes in dieselbe Tabelle

Eine Mutation tritt immer dann auf, wenn Sie einen Trigger auf Zeilenebene haben, der die Tabelle ändert, für die Sie triggern. Das Problem ist, dass Oracle nicht wissen kann, wie es sich verhalten soll. Sie fügen eine Zeile ein, der Trigger selbst fügt eine Zeile in dasselbe ein Tabelle, und Oracle wird verwirrt, weil diese Einfügungen in die Tabelle aufgrund des Triggers auch der Trigger-Aktion unterliegen?

Die Lösung ist ein dreistufiger Prozess.

1.) Anweisungsebene vor dem Trigger, der ein Paket instanziiert, das die eingefügten Zeilen verfolgt.

2.) Vor- oder Nach-Trigger auf Zeilenebene, der diese Zeileninformationen in den Paketvariablen speichert, die im vorherigen Schritt instanziiert wurden.

3.) Anweisungsebene nach dem Trigger, der alle Zeilen, die in der Paketvariable gespeichert sind, in die Tabelle einfügt.

Ein Beispiel dafür finden Sie hier:

http://asktom.oracle.com/pls/asktom/ASKTOM .download_file?p_file=6551198119097816936

Hoffe das hilft.