Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

ORA-04091:a tabela está em mutação, o gatilho/função pode não ver erro durante a execução do gatilho oracle


Trigger não pode ler a tabela (Select KPI_FREQ_TIME_UNIT FROM KPI_DEFINITION), que muda... você pode acessar o valor desta forma::new.KPI_FREQ_TIME_UNIT.More info:http://www.dba-oracle.com/t_avoiding_mutating_table_error.htm

Em outros casos, você pode tentar fazer isso em transação autônoma :
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;