ORA-30926 无法在源表中获得一组稳定的行 && Merge into 实战

merge into 时需要一个唯一的key值来决定merge into的操作是insert into还是update,而我merge的临时表中的key值不唯一,所以报这个错误了,解决办法是将临时表按照一定的规则先搂一遍全部数据并且key值唯一

Merge into 实战


create table t1(
  syscode varchar(32),
  title varchar(32)
);
create table t2(
  syscode varchar(32),
  title varchar(32)
);

insert into t1 values ('1','测试1');
insert into t1 values ('2','测试2');
insert into t1 values ('3','测试3');
insert into t1 values ('4','测试4');
insert into t1 values ('5','测试5');

insert into t2 values ('1','测');
insert into t2 values ('2','测');
insert into t2 values ('3','测');
insert into t2 values ('4','测');
insert into t2 values ('5','测');

select  * from t1;
select  * from t2;


MERGE INTO t2 a
USING (select  title,syscode from t1 ) b
ON ( a.syscode=b.syscode )
WHEN  MATCHED THEN
update set a.title =b.title ;

报错模拟

using的结果里出现关联字段重复的记录,比如多加一个重复id的数据

insert into t1 values ('1','脏数据');

在这里插入图片描述


写在最后

好久没有交作业了,把欠的作业补一补,嗷呜

天下英雄出我辈,一入江湖岁月催
我是「无间行者」,努力把实践过的解决方案分享给大家
如果这篇文章对你有用,一个赞、一个评论、一个关注,我都很开心
码字不易,给点鼓励吧,让我知道你在看

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐