Trigger Blocks : Trigger « Trigger « Oracle PL/SQL Tutorial






Triggers are used to define code that is executed when certain actions or events occur.

The Syntax for Creating a Database Trigger

CREATE [OR REPLACE] TRIGGER trigger_name
    {BEFORE|AFTER} verb_list ON table_name
    [[REFERENCING correlation_names] FOR EACH ROW [WHEN (condition)]]

DECLARE
    declarations
BEGIN
    pl/sql_code
END;

verb_list -- The SQL verbs that fire the trigger.

table_name -- The table on which the trigger is defined.

correlation_names -- Allows you to specify correlation names other than the default of OLD and NEW.

condition -- An optional condition placed on the execution of the trigger.

declarations -- Consists of any variable, record, or cursor declarations needed by this PL/SQL block.

SQL> CREATE TABLE to_table
  2  (col1 NUMBER);

Table created.

SQL>
SQL>
SQL>
SQL> CREATE OR REPLACE TRIGGER before_statement_trigger
  2  BEFORE INSERT ON to_table
  3  BEGIN
  4    DBMS_OUTPUT.PUT_LINE('Before Insert Statement Level');
  5  END;
  6  /

Trigger created.

SQL>
SQL> drop table to_table;

Table dropped.

SQL>
SQL>
SQL> CREATE TABLE to_table
  2  (col1 NUMBER);

Table created.

SQL>
SQL> CREATE OR REPLACE TRIGGER before_row_trigger
  2  BEFORE INSERT ON to_table
  3  FOR EACH ROW
  4  BEGIN
  5    DBMS_OUTPUT.PUT_LINE('Before Insert Row Level');
  6  END;
  7  /

Trigger created.

SQL>
SQL> drop table to_table;

Table dropped.

SQL>
SQL>








28.2.Trigger
28.2.1.Triggers
28.2.2.System triggers
28.2.3.Creating a Trigger
28.2.4.Trigger Blocks
28.2.5.Trigger that output old value
28.2.6.DML Trigger Example
28.2.7.Firing a Trigger
28.2.8.The use of a trigger
28.2.9.INSERTING, DELETING and UPDATING Predicates
28.2.10.Reference current user name in trigger
28.2.11.Call raise_application_error to report an error in a trigger
28.2.12.Use cursor in trigger
28.2.13.Check the status of the trigger
28.2.14.Show errors for a trigger