CREATE OR REPLACE TRIGGER TR_ZY_BRXXB0_CZRZ AFTER DELETE OR UPDATE OF ZZYSXM, SXYSXM, ZRYSXM ON SD_ZY.ZY_BRXXB0 REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW declare -- local variables here VS_CZNR00 XT_XTCZRZ.CZNR00%Type; Verrmsg varchar2(100); -- MODIFICATION HISTORY -- Person Date Comments -- YANGY 2007.09.12 跟踪zy_brxxb0中三级医生的修改记录 -- YANGY 2007.10.12 南平住院医生接口慢的问题 Begin if UPDATING then Verrmsg:='UPDATING'; VS_CZNR00 := '住院病人信息表: 修改 '||TRIM(:OLD.XM0000)||'('||TRIM(:OLD.ZYH000)||')'||'; '; If NVL(:NEW.ZRYSXM,' ') <> NVL(:OLD.ZRYSXM,' ') Then VS_CZNR00 := VS_CZNR00||'主任医生:'||TRIM(:OLD.ZRYSXM)||'->'||TRIM(:NEW.ZRYSXM)||'; '; End If; If NVL(:NEW.ZZYSXM,' ') <> NVL(:OLD.ZZYSXM,' ') Then VS_CZNR00 := VS_CZNR00||'主治医生:'||TRIM(:OLD.ZZYSXM)||'->'||TRIM(:NEW.ZZYSXM)||'; '; End If; If NVL(:NEW.SXYSXM,' ') <> NVL(:OLD.SXYSXM,' ') Then VS_CZNR00 := VS_CZNR00||'住院医生:'||TRIM(:OLD.SXYSXM)||'->'||TRIM(:NEW.SXYSXM)||'; '; End If; SP_BM_CRCZRQ('ZY_BRXXB0',1,VS_CZNR00,:OLD.ZYID00); Elsif DELETING Then Verrmsg:='DELETING'; VS_CZNR00 := '住院病人信息表: 删除 '||TRIM(:OLD.XM0000)||'('||TRIM(:OLD.ZYH000)||')'||'; '; If (:OLD.ZYID00 Is Not Null) Then VS_CZNR00 := VS_CZNR00||'住院ID:'||Trim((:OLD.ZYID00))||';'; End If; If (:OLD.ZRYSXM Is Not Null) Then VS_CZNR00 := VS_CZNR00||'主任医生:'||Trim((:OLD.ZRYSXM))||';'; End If; If (:OLD.ZZYSXM Is Not Null) Then VS_CZNR00 := VS_CZNR00||'主治医生:'||Trim((:OLD.ZZYSXM))||';'; End If; If (:OLD.SXYSXM Is Not Null) Then VS_CZNR00 := VS_CZNR00||'住院医生:'||Trim((:OLD.SXYSXM))||';'; End If; If (:OLD.BRZT00 Is Not Null) Then VS_CZNR00 := VS_CZNR00||'病人状态:'||Trim((:OLD.BRZT00))||';'; End If; SP_BM_CRCZRQ('ZY_BRXXB0',2,VS_CZNR00,:OLD.ZYID00); END IF; exception when others then RAISE_APPLICATION_ERROR(-20004,'未找到数据!*'||Verrmsg||';'||SQLERRM); Rollback; End TR_ZY_BRXXB0_CZRZ; /