如题,以下是我写的触发器
create or replace trigger Tgr_employees
after insert 
on TESTEMPLOYEES
for each rowbegin
if inserting then --如果是插入状态
insert into TESTEMPLOYEE_LOG(ELID,CONTENT) VALUES(:NEW.E_ID , '测试内容');end if
end;上面是触发器
说明下,表TESTEMPLOYEE_LOG里面两个字段,ELID,CONTENT
TESTEMPLOYEES表两个字段 , E_ID ,ENAME
想通过 执行语句:insert into TESTEMPLOYEES(E_ID,ENAME) values(12,'HAHA');
触发insert触发器,然后像TESTEMPLOYEE_LOG表中插入数据,可是总包如题的错误,网上找了很多,但大部份都是粘贴的,一点也解决不了问题,有谁用过的,麻烦请指教,谢谢。。

解决方案 »

  1.   

    再补充一下,网上很多人说
    用show error 查看错误信息。
    但是为什么我写了 这个语句执行后报 SQL语句错误呢?
      

  2.   

    SQL> select * from test;no rows selectedSQL> select * from test_log;no rows selected
    SQL> create or replace trigger tgr_test
      2  after insert
      3  on test
      4  for each row
      5  begin
      6  if inserting then
      7  insert into test_log(ID,CONTENT) VALUES(:new.ID,'测试内容');
      8  end if;
      9  end;
     10  /Trigger created.
    SQL> insert into test values(1,'wh');1 row created.SQL> commit;Commit complete.SQL> select * from test;        ID NAME
    ---------- --------------------
             1 whSQL> select * from test_log;        ID CONTENT
    ---------- --------------------
             1 测试内容
      

  3.   

    show errors是在SQL*PLUS命令行下的命令
    不知道楼主是在什么环境下进行操作的
      

  4.   

    很明显 end if后面没分号啊。
      

  5.   

    在命令行窗口编译,提示编译错误的时候show errors
      

  6.   

    end if 后面必须有分号的。