create or replace trigger t_pat after update on pat for each row
begin
  insert into pat_log values(sysdate,'update','pat',:old.id,user);
end;
帮忙看一下,为什么这个触发器编译错?把值替换掉insert正常。谢谢!

解决方案 »

  1.   

    :old.id和user用字符串替代,直接用user也正常
    表pat_log:
    pl_time date,
    pl_type varchar2(30),
    pl_name varchar2(30),
    pl_value varchar2(30),
    pl_user varchar2(30)
      

  2.   

    :old.id是字符型吗?试试把它改为触发前.看怎样?
      

  3.   

    :old.id是varchar2(10),改为before也不行,谢谢指导
      

  4.   

    pl_value varchar2(30)那不行,:old.id是varchar2(10)它们之间定义宽度不一至, 把其中一个改成相同!
      

  5.   

    还是不行,我觉得varchar2类型应该没有关系。
    错误提示:
    Warning:created trigger with compilation errors.
      

  6.   

    谢谢beckhambobo(beckham) 的帮助,我找到问题出在哪了
    ,:old.id冒号要与前面的豆号分开