create or replace trigger UpdateDistant_Time
  before update on aimis_hd_question_center  
  for each row
 
declare
      issueDate Date;
      answerDate Date;
      responsetime number;
begin
issueDate := :new.create_date;
answerDate := :new.close_date;responsetime := getcaseresponsetime(issueDate,answerDate);if(responsetime > 0)
then
    responsetime := 1;
end if;
---这边改一下应该就可以咯。
 :new.distant_time = responsetime;
 
 
end UpdateDistant_Time; 

解决方案 »

  1.   

    to qiaozhiwei(乔):
    出现“表变异,不能对表数据进行读取”的错误。
    to superlcj(幽灵):
    怎么改呢?
    我用update aimis_hd_question_center  set distant_time = responsetime,出现同样的问题。
    你的意思是不是改成:new.distant_time := responsetime;啊?不好意思,这个是我的手误。
      

  2.   

    好像对表A定义的触发器里又有对表A的操作语句的话,有可能发生上面的错误,就你上面的,本来是处理UPDATE的,而你在里边又UPDATE了,或许是这个原因
      

  3.   

    update aimis_hd_question_center set distant_time = responsetime;
    改为 select responsetime into :new.distant_time from dual;
    试试
      

  4.   

    问题已经解决了。
    修改了如下部分:
    create or replace trigger UpdateDistant_Time
      before update of close_date on aimis_hd_question_center  
      for each row
    谢谢各位的帮忙,马上结贴给分。凡是登陆者都有份哦。:)