ORA Error ReferenceSearch errors

All errors › ORA errors

ORA-04091: Table is mutating, trigger/function may not see it

What it means

A row-level trigger (or a function called from DML) reads or modifies the table that the triggering statement is changing.

How to fix it

Use a compound trigger: collect the keys in the row-level section and do the work in AFTER STATEMENT. Or move the logic into the calling procedure. Avoid PRAGMA AUTONOMOUS_TRANSACTION as a workaround: the autonomous transaction cannot see the uncommitted changes of the triggering statement, so it works on stale data.

Catch it before it runs

ORA Error Helper
Explains ORA-/PLS- codes inside JetBrains IDEs and DataGrip.
PL/SQL Lint
Flags risky PL/SQL patterns while you type.
Oracle Plan Reader
Reads execution plans and points at the slow step.
PL/SQL in Practice
Kindle book with practical PL/SQL for working developers.

Nearby errors

Updated 2026-11-12.