错误1,触发器中不能用COMMIT
错误2,AFTER UPDATA型触发器中又UPDATE了两次。OLD算哪个?

解决方案 »

  1.   

    Create or Replace Trigger T_updatesfc_qcmreceive after update on sfc_qcmreceive
    for each row
      
    Begin
      UPDATE SFC_QCDRECEIVE
         SET LINE_NO = :NEW.LINE_NO,
             BAD_NO = :NEW.BAD_NO
       WHERE FACT_NO = :OLD.FACT_NO AND DEPT_NO = :OLD.DEPT_NO
         AND LINE_NO = :OLD.LINE_NO AND ITEM_NO = :OLD.ITEM_NO
         AND BAD_NO = :OLD.BAD_NO AND REASON_NO = :OLD.REASON_NO
         AND REC_DATE = :OLD.REC_DATE AND REC_TIME = :OLD.REC_TIME;
    End;Warning: Trigger created with compilation errors.SQL> show err;
    Errors for TRIGGER T_UPDATESFC_QCMRECEIVE:LINE/COL ERROR
    -------- -----------------------------------------------------------
    7/47     PLS-00049: bad bind variable 'OLD.REASON_NO'