当前位置: 代码迷 >> Oracle开发 >> 触发器诡谲报错!
  详细解决方案

触发器诡谲报错!

热度:107   发布时间:2016-04-24 06:28:38.0
触发器诡异报错!!
在oracle10g中创建触发器,代码如下:
create or replace trigger HI_trigger
  after insert on bill_detail  
  for each row
begin
  IF :NEW.AMOUNT < 0 THEN
    INSERT INTO HI_BILL_DETAIL_AUDIT (patient_id,visit_id,item_no)
    VALUES(NEW.PATIENT_ID,:NEW.visit_id,:NEW.item_no);
  END IF;
end;

其中,bill_detail和HI_BILL_DETAIL_AUDIT 具有同样的表结构,运行时一直报错如下:
ORA-00604: error occurred at recursive SQL level 1
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
ORA-06512: at line 36

查了很多资料无法解决,求能人指点!!
------解决思路----------------------
从提示看应该是字段大小不够
------解决思路----------------------
create or replace trigger HI_trigger
  after insert on bill_detail  
  for each row
when (NEW.AMOUNT < 0 )
begin
    INSERT INTO HI_BILL_DETAIL_AUDIT (patient_id,visit_id,item_no)
    VALUES(:NEW.PATIENT_ID, :NEW.visit_id, :NEW.item_no);
end;
  相关解决方案