1

Oracle データベースにトリガーを作成しました。このトリガーは、すべての重複データを削除するために、挿入手順の前に実行されます。この手順は、C# アプリケーションによって実行されます。

TRIGGER Kill_Duplicates

BEGIN

IF ( xxx ) THEN
  Raise_application_error(-22222, ' is duplicate!');
END IF;

END
  1. Raise_application_error からのメッセージはどこで読むことができますか? たとえば、一部の重複データがデータベースに入力されると、Raise_application_error がトリガーされます。これをどこで読み取るか - "(-22222, ' is duplicate!')"?
  2. トリガーをデバッグする方法はありますか? 構文の問題、ロジックの問題など、トリガーが正しくない場合、トリガー自体の例外メッセージを読み取る方法は? 例外/エラーをどのように知り、取得するのですか?
4

1 に答える 1

1

例外は、トリガーが実行される原因となった DML ステートメントを実行したセッションに渡されます。

あなたのエラーメッセージは、トリガーで整合性を強制しようとしていることを示唆しているのではないかと思います. それは通常、悪いことです。

于 2012-12-11T14:57:28.653 に答える