oracle觸發器 當表修改指定欄位時,把那條記錄插入到記錄修改表中

NO IMAGE

create or replace trigger “TR_SALE_MY_CUSTOMER_UPDATE”
  before update on sale_my_customer
  for each row

begin
  –客戶聯絡人電話   
  if :old.CONTACT_PHONE <> :new.CONTACT_PHONE then
    insert into MY_CUSTOMER_MODIFY
      (id,
       My_Customer_Id,
       FIELD_NAME,
       FIELD_CODE,
       OLD_VALUE,
       NEW_VALUE,
       UPDATE_BY,
       UPDATE_DATE)
    values
      (MY_CUSTOMER_LOG.nextval,
       :old.id,
       ‘聯絡人電話’,
       ‘contact_phone’,
       :old.CONTACT_PHONE,
       :new.CONTACT_PHONE,
       :new.UPDATE_BY,
       sysdate);
    –DATA_MODIFY_LOG
  end if;
  –客戶聯絡人職位
  if :old.CONTACT_POST <> :new.CONTACT_POST then
    insert into MY_CUSTOMER_MODIFY
      (id,
       My_Customer_Id,
       FIELD_NAME,
       FIELD_CODE,
       OLD_VALUE,
       NEW_VALUE,
       UPDATE_BY,
       UPDATE_DATE)
    values
      (MY_CUSTOMER_LOG.nextval,
       :old.id,
       ‘聯絡人職位’,
       ‘CONTACT_POST’,
       :old.CONTACT_POST,
       :new.CONTACT_POST,
       :new.UPDATE_BY,
       sysdate);
  end if;
  –客戶公司地址
  if :old.CUSTOMER_ADRESS <> :new.CUSTOMER_ADRESS then
    insert into MY_CUSTOMER_MODIFY
      (id,
       My_Customer_Id,
       FIELD_NAME,
       FIELD_CODE,
       OLD_VALUE,
       NEW_VALUE,
       UPDATE_BY,
       UPDATE_DATE)
    values
      (MY_CUSTOMER_LOG.nextval,
       :old.id,
       ‘客戶公司地址’,
       ‘CUSTOMER_ADRESS’,
       :old.CUSTOMER_ADRESS,
       :new.CUSTOMER_ADRESS,
       :new.UPDATE_BY,
       sysdate);
  end if;
  –客戶郵箱
  if :old.EMAIL <> :new.EMAIL then
    insert into MY_CUSTOMER_MODIFY
      (id,
       My_Customer_Id,
       FIELD_NAME,
       FIELD_CODE,
       OLD_VALUE,
       NEW_VALUE,
       UPDATE_BY,
       UPDATE_DATE)
    values
      (MY_CUSTOMER_LOG.nextval,
       :old.id,
       ‘郵箱地址’,
       ‘EMAIL’,
       :old.EMAIL,
       :new.EMAIL,
       :new.UPDATE_BY,
       sysdate);
  end if;
  –客戶型別
  if :old.CUSTOMER_TYPE <> :new.CUSTOMER_TYPE then
    insert into MY_CUSTOMER_MODIFY
      (id,
       My_Customer_Id,
       FIELD_NAME,
       FIELD_CODE,
       OLD_VALUE,
       NEW_VALUE,
       UPDATE_BY,
       UPDATE_DATE)
    values
      (MY_CUSTOMER_LOG.nextval,
       :old.id,
       ‘客戶型別’,
       ‘CUSTOMER_TYPE’,
       :old.CUSTOMER_TYPE,
       :new.CUSTOMER_TYPE,
       :new.UPDATE_BY,
       sysdate);
  end if;
  –客戶所屬行業
  if :old.CUSTOMER_INDUSTRY <> :new.CUSTOMER_INDUSTRY then
    insert into MY_CUSTOMER_MODIFY
      (id,
       My_Customer_Id,
       FIELD_NAME,
       FIELD_CODE,
       OLD_VALUE,
       NEW_VALUE,
       UPDATE_BY,
       UPDATE_DATE)
    values
      (MY_CUSTOMER_LOG.nextval,
       :old.id,
       ‘客戶所屬行業’,
       ‘CUSTOMER_INDUSTRY’,
       :old.CUSTOMER_INDUSTRY,
       :new.CUSTOMER_INDUSTRY,
       :new.UPDATE_BY,
       sysdate);
  end if;
  –客戶級別
  if :old.CUSTOMER_LEVEL <> :new.CUSTOMER_LEVEL then
    insert into MY_CUSTOMER_MODIFY
      (id,
       My_Customer_Id,
       FIELD_NAME,
       FIELD_CODE,
       OLD_VALUE,
       NEW_VALUE,
       UPDATE_BY,
       UPDATE_DATE)
    values
      (MY_CUSTOMER_LOG.nextval,
       :old.id,
       ‘客戶所屬級別’,
       ‘CUSTOMER_LEVEL’,
       :old.CUSTOMER_LEVEL,
       :new.CUSTOMER_LEVEL,
       :new.UPDATE_BY,
       sysdate);
  end if;
  –生日
  if :old.BIRTHDAY <> :new.BIRTHDAY then
    insert into MY_CUSTOMER_MODIFY
      (id,
       My_Customer_Id,
       FIELD_NAME,
       FIELD_CODE,
       OLD_VALUE,
       NEW_VALUE,
       UPDATE_BY,
       UPDATE_DATE)
    values
      (MY_CUSTOMER_LOG.nextval,
       :old.id,
       ‘生日’,
       ‘BIRTHDAY’,
       :old.BIRTHDAY,
       :new.BIRTHDAY,
       :new.UPDATE_BY,
       sysdate);
  end if;
end;