トリガーを所有する同じテーブルに対してDML(SELECTを含む)を発行するトリガーは、変更テーブルの例外であるORA-4091のスペクターを発生させます。 Oracleは、トランザクションの結果が決定論的であると予想し、独自のテーブルでDMLを発行するトリガーが手続きに不確実性をもたらすため、このエラーを投げかけます。
テーブルの変更は、悪い設計、特に悪いデータモデルの信頼できる指標であり、ここではそうなっているようです。
罰金の値が単一の観測の結果に依存している場合、FINEがOBSERVACIONテーブルの列であっても問題ありません。ただし、ビジネスルールでは、特定の期間内にある場合、値はいくつかの観測値に依存する可能性があることが示されています。このシナリオでは、罰金は独自のテーブルに含まれている必要があります。特定の罰金の対象となる観測を示すには、OBSERVACIONとMULTAの間に外部キーが必要になります。