请教:创建触发器成功,但执行插入时出错CREATE OR REPLACE TRIGGER Insert_comments
  AFTER insert ON comments
  FOR EACH ROW
DECLARE 
 v_no  NUMBER;
BEGIN
v_no:=:new.artitleID;
Update artitles set replyNum=replyNum+1 where artitles. artitleID =v_no;
END Insert_comments;
执行insert into comments (COMID, COMMENTCONTENT, USERID, COMMENTTIME, ARTITLEID)
values (9, '扫描端口', 10, to_date('29-12-2010', 'dd-mm-yyyy'), 8);时,出错出错insert into comments (COMID, COMMENTCONTENT, USERID, COMMENTTIME, ARTITLEID)
*第 1 行出现错误: 
ORA-04098: 触发器 'SYSTEM.TU_ARTITLES' 无效且未通过重新验证 ORA-06512: 在 
"SYSTEM.INSERT_COMMENTS", line 5 
ORA-04088: 触发器 'SYSTEM.INSERT_COMMENTS' 执行过程中出错

解决方案 »

  1.   


    CREATE OR REPLACE TRIGGER Insert_comments
    before insert ON comments  --insert用before
    FOR EACH ROW
    BEGIN
    Update artitles set replyNum=replyNum+1 where artitleID =:=:new.artitleID;
    END Insert_comments;
      

  2.   

    1、触发器中有编译错误。检查一下错误提示。
    可以在pl/sql developer中打开该触发器,在下面的窗口中查看一下错误提示。
    2、用after是可以的,也可以引用:new值。
    3、错误跟你插入值没有关系。
      

  3.   

    非常感谢2楼的提示,我找到错误了,是之前用Erwin 生成的'SYSTEM.TU_ARTITLES' 无效,我删除了,就可以了,……