Oracle
 sql >> база данни >  >> RDS >> Oracle

ORA-04091:таблицата се променя, тригерът/функцията може да не го види грешка по време на изпълнение на тригера на oracle

Тригерът не може да прочете таблицата (Изберете KPI_FREQ_TIME_UNIT ОТ KPI_DEFINITION), това се променя... можете да получите достъп до стойността по този начин::new.KPI_FREQ_TIME_UNIT. Повече информация:http://www.dba-oracle.com/t_avoiding_mutating_table_error.htm

В други случаи можете да опитате да го направите в автономна транзакция :

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;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL - Множество стойности, разделени със запетая, когато използвате GROUP BY

  2. Извлечете броя на актуализираните редове

  3. Времево клеймо на Oracle, максимални и минимални стойности

  4. Вмъкнете дата в Oracle

  5. Хибернация Свържете две несвързани таблици, когато и двете имат съставен първичен ключ