.append("MERGE INTO AC_THREE_GROUP atg ")
.append("USING AC_THREE_OPER_UTIL atou ")
.append("ON (atg.ATG_MSISDN=atou.AT_MSISDN) ")
.append("WHEN MATCHED THEN ")
.append(" UPDATE SET atg.ATG_IMSI=atou.AT_IMSI, ")
.append(" atg.ATG_IMEI=atou.AT_IMEI, ")
.append(" atg.ATG_GROUP_ID=atou.GI_GROUP_ID, ")
.append(" atg.ATG_CRE_TIME=SYSDATE ")
.append("WHEN NOT MATCHED THEN ")
.append(" INSERT ")
.append(" (ATG_MSISDN, ATG_IMSI, ATG_IMEI, ATG_GROUP_ID, ATG_CRE_TIME) ")
.append(" VALUES ")
.append(" (atou.AT_MSISDN, atou.AT_IMSI, atou.AT_IMEI, atou.GI_GROUP_ID, SYSDATE) ").
为什么 ac_three_group 中出现了 atg_msisdn相同的数据 纳闷 偶尔会出现 出现好几次了
.append("USING AC_THREE_OPER_UTIL atou ")
.append("ON (atg.ATG_MSISDN=atou.AT_MSISDN) ")
.append("WHEN MATCHED THEN ")
.append(" UPDATE SET atg.ATG_IMSI=atou.AT_IMSI, ")
.append(" atg.ATG_IMEI=atou.AT_IMEI, ")
.append(" atg.ATG_GROUP_ID=atou.GI_GROUP_ID, ")
.append(" atg.ATG_CRE_TIME=SYSDATE ")
.append("WHEN NOT MATCHED THEN ")
.append(" INSERT ")
.append(" (ATG_MSISDN, ATG_IMSI, ATG_IMEI, ATG_GROUP_ID, ATG_CRE_TIME) ")
.append(" VALUES ")
.append(" (atou.AT_MSISDN, atou.AT_IMSI, atou.AT_IMEI, atou.GI_GROUP_ID, SYSDATE) ").
为什么 ac_three_group 中出现了 atg_msisdn相同的数据 纳闷 偶尔会出现 出现好几次了
你可以尝试在plsql或者sqlplus中建立两个session,然后按照下面的方式执行;
1,第一个session中执行merge into(假设其中有一条atg_msisdn在t1镇南关不存在),记住这时不要commit;
2,在session2中执行上面相同的语句;
3,commit session1
4,commit session2这样后就会导致有一条重复的atg_msisdn