需要批量更新数据时,不建议用update,用merge into 原因参考链接update和merge into效率比对
update更新数据:
update 表名 set 字段名 = 值 where 条件
merge into更新数据:
merge into 目标表 a
using 源表 或者(select * from test_table) b
on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) on条件一定要有()
when matched then update set a.字段=b.字段 目标表别名a 和源表别名都不可以省略
在merge into时,出现错误:ORA-30926:无法在源表中获得一组稳定的行
解决方法:关注要更新的数据是否有重复 distinct看一下数据的个数是否相等