我需要帮助使用oracle的merge函数

时间:2015-03-16 13:42:25

标签: php sql oracle

我有三个表(partial_subs_2015,partial_subs_new和full_subscribers),其中包含客户电话号码和客户名称。 基本上我想要做的是将电话号码和客户名称从partial_subs_new加载到partial_subs_2015,如果这些数字已经存在于使用partial_subs_2015中,则没有任何事情发生(更新子句),当这些数字存在于full_subscribers中时,它们将从partial_subs_2015(删除子句)。最后,如果在partial_subs_2015中找不到partial_subs_new中的数字(不匹配),则将它们插入到该表中(partial_subs_2015)(insert子句)。

我的查询无限期地运行,我不知道为什么。 任何帮助将不胜感激。基本上这将给我一个动态表,如果客户转换为完整,它们将从partial_subs_2015表中删除。我有这个问题:

merge into partial_subs_2015 p using partial_subs_new e
on ( e.customer_name =  p.customer_name)
when matched then update set p.msisdn = p.msisdn
delete where p.msisdn  in (select msisdn from full_subscribers)
when not matched then insert (msisdn,customer_name)
values (e.msisdn,e.customer_name)

0 个答案:

没有答案