Updating clause used in instead of trigger
2) Next BEFORE row level trigger fires, once for each row affected.
Simple views are generally updateable via DML statements issued against the view.However, when a view becomes more complex it may lose its “updateable-ness,” and the Oracle INSTEAD-OF trigger must be used.TRIGGER_NAME — Name of the trigger TRIGGER_TYPE – The type is BEFORE, AFTER, INSTEAD OF TRIGGER_EVENT — The DML operation firing the trigger TABLE_OWNER – Owner of the table BASE_OBJECT_TYPE – Object type TABLE_NAME – Name of the database table COLUMN_NAME – Name of the Column REFERENCING_NAMES – Name used for : OLD and : NEW WHEN_CLAUSE – The when_clause used STATUS – The status of the trigger DESCRIPTION – Description ACTION_TYPE – Type of action TRIGGER_BODY — The action to take Don’t use triggers – The best way to avoid the mutating table error is not to use triggers.While the object-oriented Oracle provides “methods” that are associated with tables, most savvy PL/SQL developers avoid triggers unless absolutely necessary.
Use an “after” trigger - If you must use a trigger, it’s best to avoid the mutating table error by using an “after” trigger.
For example, using a trigger “:after update on xxx”, the original update has completed and the table will not be mutating.