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的处理方法