SQL> create or replace trigger employeesins
  2  after insert,update on employees
  3  declare
  4  departmentid char;
  5  begin
  6  select departmentid into departmentid
  7  from employeesins where departmentid=:new.departmentid;
  8  if(departmentid is null) then
  9  rollback;
 10  end if;
 11  end employeesins;
 12  /
after insert,update on employees
            *
ERROR 位于第 2 行:
ORA-00969: 缺少 ON 关键字
按提示修改逗号为or,运行  1  create or replace trigger employeesins
  2  after insert or update on employees
  3  declare
  4  departmentid char;
  5  begin
  6  select departmentid into departmentid
  7  from employeesins where departmentid=:new.departmentid;
  8  if(departmentid is null) then
  9  rollback;
 10  end if;
 11* end employeesins;
SQL> /
after insert or update on employees
    *
ERROR 位于第 2 行:
ORA-04082: NEW 或 OLD 引用不允许在表层触发器中

解决方案 »

  1.   

    SQL>   create   or   replace   trigger   employeesins 
        2     after   insert or update   on   employees  for each row
        3     declare 
        4     departmentid   char(10); 
        5     begin 
        6     select   departmentid   into   departmentid 
        7     from   employeesins   where   departmentid=:new.departmentid; 
        8     if(departmentid   is   null)   then 
        9     rollback; 
      10     end   if; 
      11     end   employeesins; 
      12     / 运行正确