Oracle
 sql >> Base de données >  >> RDS >> Oracle

ORA-04091 :la table est en train de muter, le déclencheur/la fonction peut ne pas le voir erreur lors de l'exécution du déclencheur oracle

Le déclencheur ne peut pas lire la table (Sélectionnez KPI_FREQ_TIME_UNIT FROM KPI_DEFINITION), qui change... vous pouvez accéder à la valeur de cette manière : :new.KPI_FREQ_TIME_UNIT.Plus d'informations :http://www.dba-oracle.com/t_avoiding_mutating_table_error.htm

Dans d'autres cas, vous pouvez essayer de le faire dans transaction autonome :

create or replace TRIGGER RATOR_MONITORING_CONFIGURATION."TRG_TRK_KPI_DEFINITION" 
AFTER UPDATE ON RATOR_MONITORING_CONFIGURATION.KPI_DEFINITION FOR EACH ROW
DECLARE
   PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
  -- ...
  COMMIT; -- don't forget it!!!
END;