key words: update,ORA-01779
經常用到update語句,不過很少用到其他表的數據來更新當前表,這次用到了,總結一下
UPDATE
( SELECT /*+ BYPASS_UJVC */
a.groupname a1,b.groupname b1 from t_account_temp a,t_certificode_temp b
where a.certificode = b.certificode
)
SET a1=b1;
特別的地方是要加 /*+ BYPASS_UJVC */,讓oracle不檢查健的約束,否則會報ORA-01779錯誤,不過前提是你確認確實不會有多個b表的值出現,或者即使有多個值也沒有影響。
相關參考如下
一種高效率的update多表關聯更新測試
ORA-01779的處理方法