トリガーは、コミットを入れることができないCOMMITを必要としないだけでなく、本体のコードにCOMMIT(またはロールバック)が含まれている場合、トリガーはコンパイルされません。
これは、トランザクション中にトリガーが起動するためです。トリガーが起動しても、現在のトランザクションはまだ完了していません。 COMMITがトランザクションを終了すると、トリガーでトランザクションを許可すると、作業単位が壊れます。
したがって、トリガーで実行された変更は、トリガーを起動したDMLを発行した所有トランザクションによってコミット(またはロールバック)されます。
トリガーはPRAGMAAUTONOMOUS_TRANSACTIONの下で実行できることは事実です。その場合、トリガーにはCOMMITが必要です。ただし、Oracleではネストされたトランザクションの意味のある使用法がほとんどないため、これはエッジケースです。