下面是一个简单的之前语句级触发器示例,该触发器在对emp表执行插入操作之前显示一条消息。

CREATE OR REPLACE TRIGGER emp_alert_trig
    BEFORE INSERT ON emp
BEGIN
    DBMS_OUTPUT.PUT_LINE('New employees are about to be added');
END;

以下INSERT是这样构造的,以便在执行一次命令时插入多个新行。对于员工ID介于7900和7999之间的每一行,都会插入一个新行,其中员工ID按1000递增。下面是执行该命令的结果,这时插入了三个新行。

INSERT INTO emp (empno, ename, deptno) SELECT empno + 1000, ename, 40
    FROM emp WHERE empno BETWEEN 7900 AND 7999;
New employees are about to be added

SELECT empno, ename, deptno FROM emp WHERE empno BETWEEN 8900 AND 8999;

     EMPNO ENAME          DEPTNO
---------- ---------- ----------
      8900 JAMES              40
      8902 FORD               40
      8934 MILLER             40

消息New employees are about to be added将在触发器触发后显示一次,即使结果是添加了三个新行。