create table test001( num varchar(100));
       
create or replace TRIGGER test001Test
AFTER insert on test001
 FOR EACH ROW
 begin  
end test001Test;insert into test001 values ('1212');运行以上sql,系统提示异常ORA-04098,请帮忙看下是什么问题造成的。谢谢!

解决方案 »

  1.   

    begin end包裹的代码块为空 
      

  2.   

    insert 语句级触发器定义语法
      语法如下:
      CREATE OR REPLACE TRIGGER trigger_name
      [AFTER | BEFORE] INSERT ON table_name
      DECLARE
      Local declarations
      BEGIN
      Body written PL/SQL
      END;
    --一个没有body的语句,执行什么呢
      

  3.   

    按理说,你这个 触发器没什么意义,应该删除掉的,1# 说的比较清楚了,包里内容为空;如果,你非要保留空上触发器,至少要写一行代码,真是什么要写的话,可以写一个 null ; SQL> 
    SQL> create table test001( num varchar(100));
    Table created
    SQL> create or replace TRIGGER test001Test
      2  AFTER insert on test001
      3   FOR EACH ROW
      4   begin
      5       null ;  -- 写在这里
      6  end test001Test;
      7  /
    Trigger created
    SQL> insert into test001 values ('1212');
    1 row inserted
    SQL> /
    1 row inserted
    SQL> drop table test001 purge ;
    Table droppedSQL>