Oracle 语句常见错误

Merge into的注意点之ORA-30926:无法在源表中获得一组稳定的行?

merge into 的内部处理是将table_source 的每一条记录和table_target的每一条记录对比匹配,匹配到符合条件的 记录就会进行修改,匹配不到的话就会insert。如果table_source的匹配列中有重复值的话,等到第二次重复的列值匹配的时候,就会将第一次的update后的值再一次update,就是说合并后的table_target中会丢失在table_source中的记录!!!如果记录丢失的话,两表合并的意义何在?!!因此我们使用merge into要注意:源表匹配列中不能有重复值,否则无法匹配(报错)。

posted @ 2016-01-28 13:07  码不能停  阅读(295)  评论(0编辑  收藏  举报