【資料庫】Oracle實現判斷條件批次修改功能

2020-10-16 17:00:27

背景:

    由於拆庫專案發展,需要對錶進行簡單重構;業務要求遷移的表需要存在 ‘新增人ID’,‘新增人’,‘新增時間’,‘修改人ID’,‘修改人’,‘修改時間’幾個欄位,原表不存在的這幾個欄位需要進行新增欄位。並且要求這幾個欄位都應設定‘不可為null。

   就需要在保證新增的資料已經存在預設值的情況下,對原來的資料進行修復再做資料轉移(如圖將每個為null的欄位分別進行賦值);


update TABLE_NAME
set 
  CREATE_USER_ID = case  when CREATE_USER_ID is null then 333 else CREATE_USER_ID end,
  CREATE_USER_NAME =  case when CREATE_USER_NAME is null then'系統' else CREATE_USER_NAME end,
  CREATE_DATETIME= case when CREATE_DATETIME is null then sysdate else CREATE_DATETIME end,
  UPDATE_USER_ID= case when UPDATE_USER_ID is null then 333 else UPDATE_USER_ID  end,
  UPDATE_USER_NAME= case when UPDATE_USER_NAME is null then '系統' else UPDATE_USER_NAME  end,
  UPDATE_DATETIME= case when UPDATE_DATETIME is null then sysdate else UPDATE_DATETIME end
where 
CREATE_USER_ID is null or CREATE_USER_NAME is null or CREATE_DATETIME  is null or 
UPDATE_USER_ID is null or UPDATE_USER_NAME is null or UPDATE_DATETIME is null  ;