トリガー・デザイナ

このセクションの内容は次のとおりです。

Oracle Developer Toolsでのトリガーの作成

トリガー・デザイナは、表またはビューのトリガーを作成する際に使用します。新規トリガーを作成した後、PL/SQLコード・エディタを使用してトリガー仕様を編集できます。トリガーを作成すると、そのトリガーは自動的に有効になります。

次のタイプのトリガーは、トリガー・デザイナでは作成できません:

  • トリガーとしてのプロシージャ・コール

  • 新規バージョンのトリガーが旧バージョンのトリガーと同じビューを参照する場合の、ネストされている列トリガー

  • 行の値に:OLD:NEWまたは:PARENTの予約語を使用するトリガー

  • トリガーの本体

  • DDLのトリガー

ただし、トリガーの作成後にPL/SQLコード・エディタで変更すると、これらの機能を使用できます。

トリガー・デザイナの起動

トリガー・デザイナを起動するには:

  • 表のトリガーを作成する場合、サーバー・エクスプローラでその表のノードを開きます。表ノードに、表の制約、索引およびトリガーの各ノードが表示されます。「Triggers」ノードを右クリックし、メニューから「Add Trigger」を選択します。

  • ビューのトリガーを作成する場合、サーバー・エクスプローラでそのビューのノードを選択して開きます。「Triggers」ノードを右クリックし、メニューから「Add Trigger」を選択します。

トリガー・デザイナは次のように表示されます:

トリガー・デザイナの使用

通常、トリガー・デザイナは、新規トリガーを作成する際に使用します。OR REPLACEキーワードの追加など、トリガー・デザイナで提供されていない機能でトリガーを作成する場合、または後からトリガーを編集する場合は、PL/SQLコード・エディタでトリガーを変更します。

トリガー・デザイナには、次のコントロールがあります:

コントロール 説明

Schema name

使用可能なスキーマのリストから、トリガーの作成先のスキーマを選択します。

Trigger name

トリガーの名前を入力します。デフォルト名は、そのトリガーを作成した表に基づきます。

Occurrence

次の中から選択します:

  • BEFORE: トリガー・イベントが実行される前にトリガーを起動します。行トリガーの場合、対象となる各行が変更される前に起動します。

  • AFTER: トリガー・イベントが実行された後にトリガーを起動します。行トリガーの場合、対象となる各行が変更された後に起動します。

Frequency

次の中から選択します:

  • ROW LEVEL: トリガーを行トリガーとして指定します。Oracle Databaseは、トリガーする文の影響を受け、WHEN条件で定義されているオプションのトリガー制約を満たす各行に対して、行トリガーを1回起動します。

  • STATEMENT LEVEL: トリガーを文トリガーとして指定します。Oracle Databaseでは、オプションのトリガー制約が満たされた場合にトリガーする文が発行されたときのみ、文トリガーが起動されます。

Event type

次の1つ以上を選択します:

  • INSERT: INSERT文によって表に行が追加されたとき、またはネストした表に要素が追加されたとき、トリガーを起動します。

  • UPDATE: UPDATE文によって、列の選択でトリガー・リストへの適用を指定したいずれかの列の値が変更されると、トリガーを起動します。列を選択しない場合、UPDATE文により表またはネストした表の列のいずれかの値が変更されたときに、トリガーを起動します。「UPDATE」を選択すると、「Columns to Update」コントロールが有効になります。

ノート: トリガー・リストに適用する列の選択でオブジェクト・タイプVARRAY、およびREF列を指定し、UPDATE文によっていずれかの列の値が変更されると、トリガーを起動できます。ただし、これらの列の値はトリガー本体では変更できません。

  • DELETE: DELETE文により表から行が削除されたとき、またはネストした表から要素が削除されたとき、トリガーを起動します

Columns to update

更新トリガーにのみ適用します。更新トリガーを適用する列から選択します。

WHEN condition

トリガーが起動するために満たす必要があるSQL条件を入力します。この条件には相関名を含める必要があります。問合せは指定できません。

Preview SQL

ポップアップ・ダイアログ・ボックスおよび出力ウィンドウにCREATE TRIGGER SQLコマンド・コードを表示します。読取り専用です。

OK

作業内容を保存し、PL/SQLコード・エディタにトリガー・コードを表示して、カスタマイズできるようにします。トリガーをコミットするには、Visual Studio .NETツールバーで「保存」ボタンをクリックするか、「ファイル」メニューから「保存」を選択します。

トリガーを正常に作成すると、Oracle Developer Toolsによってそのノードがサーバー・エクスプローラに表示されます。

トリガーの作成時にエラーが発生すると、Oracle Developer Toolsによりエラー・ダイアログ・ボックスが表示され、出力ウィンドウにエラー・メッセージが表示されます。「OK」をクリックして、ダイアログ・ボックス内のエラーを修正します。その後、トリガー・デザイナの「OK」ボタンをクリックして変更内容を保存する際に、「Yes」をクリックすると、誤りのあるトリガーが正しいバージョンに置き換えられます。

ノート: トリガーでコンパイル・エラーが発生した場合、このトリガーは作成されますが、実行時に正常に処理されません。この場合、トリガーされたすべてのDML文が無効になるか、コンパイル・エラーのないバージョンに置き換えられるか、削除されるまで、トリガーするすべてのDML文は実行できません。関連するコンパイラ・エラー・メッセージを、出力ウィンドウのOracle出力ペインで参照できます。