All Oracle errors
ORA-04091plsql

Table is mutating

ORA-04091: table OWNER.TABLE is mutating, trigger/function may not see it

Why it happens

A row-level trigger (or a function it calls) queried the same table the DML is modifying, which Oracle refuses for consistency.

How to fix it

Use a compound trigger with a package-level collection to aggregate rows and act in the AFTER statement section, or move the logic out of the trigger into the application transaction.

A note on ORA-04091

This entry is part of a hand-curated set of ORA-, FRM-, REP- and TNS- codes that actually turn up in production Oracle estates — SQL*Plus, APEX, 19c/21c, ODP.NET apps, Oracle Forms 6i/12c and Reports included. The message text above is the canonical wording; the cause and fix are written in plain language so a developer or DBA can act without digging through pages of Oracle reference docs first.

Codes outside this list of 44 are far less common. If you hit one, the official Oracle error reference and your instance's alert or listener log remain the authoritative source.

Build custom software with us

From internal tools to full platforms — we deliver end to end.

Was this tool useful?