2017-02-20 11 views
0

テーブルの更新トリガーを作成し、このトリガーが何らかの理由で失敗した場合、ユーザーはトリガーを修正または削除するまでそのテーブルを更新できません。これを防ぐために?私はあなたがトリガを書いたときに間違いを犯して、更新を継続したいと思った場合を意味します。oracle before updateトリガーがテーブルの更新を停止するのを防ぐ

+0

EXCEPTIONブロックを追加してすべての例外をキャッチし、無視しても構いません。これは、更新トリガーが何をしているのかを不思議に思う将来の開発者にとって、素晴らしい地雷です。参照:http://www.orafaq.com/wiki/WHEN_OTHERS –

+2

トリガの間違いを見つけて修正してください。 –

答えて

0

無効なトリガを作成している可能性があるという問題がある場合は、次に、それを有効にする前に正しくコンパイルされていることを確認できます。

ランタイムエラーの原因とはなりません。

既存のトリガーを置き換える場合でも、新しいコードは古いものと置き換えられ、引き続き無効になります。トリガコードを使用して必須値を設定すると、実行時エラーが発生します。

CREATE OR REPLACE TRIGGER TEST_TRIG 
BEFORE INSERT ON TEST 
FOR EACH ROW 
DISABLED 
BEGIN 
    :NEW.TEST_KEY := TEST_SEQ.NEXTVAL; 
END; 
+0

トリガが有効になっていて、トリガを無効にして他のユーザがテーブルを更新できないようにするトリガーを修正するまでしたがって、テーブルの更新トリガの前に書き込む方法があります。トリガが失敗した場合は、テーブルを更新できます –

関連する問題