Вы не должны использовать триггеры для сложной бизнес-логики. Переместите его в сохраненный proc (пакет PL / SQL) или код клиента. Приложения с множеством триггеров становятся неприступными, потому что вы скоро потеряете чувство «последовательности действий».
Использование автономных транзакций абсолютно небезопасно, используйте автономную транзакцию только для ведения журнала, отслеживания, отладки и, возможно, аудита.
Чтение: http://www.oracle.com/technetwork/issue-archive/2008/08-sep/o58asktom-101055.html
Здесь вы можете прочитать, как решить проблему, если вы хотите использовать триггеры без использования автономных транзакций: http://www.procaseconsulting.com/learning/papers/200004-mutating-table.pdf