create or replace trigger des_update_1 
  before update of goods_enname or update of specs on
  goods_dict
  for each row
begin
   update contract_detail set description= :new.goods_enname||'/'||:new.specs where goods_id=
   (select goods_id from goods_dict where goods_enname=:new.goods_enname or specs=:new.specs);
end des_update_1;在PB里怎么执行老是出错!!!!!

解决方案 »

  1.   

    看看pb数据窗口中的更新方式是先删除后插入还是直接update,如果是前者,不会触发这个触发器的
      

  2.   

    我在PL/SQL DEVELOPER里面更新goods_dict这个表的时候很慢,而且触发也不成功.不过没报什么错.pb里报错:
    ORA-04091: 表 MISCONNECT.GOODS_DICT 发生了变化,触发器/函数不能读
    ORA-06512: 在"MISCONNECT.DES_UPDATE_1", line 2
    ORA-04088: 触发器 'MISCONNECT.DES_UPDATE_1' 执行过程中出错
      

  3.   

    for each row 的就是行级,用临时表可以解决