• oracle merge 目标表以及源表存在重复列的问题(转)


    SQL> select * from t_source;                                                                                             
                                                                                                                             
                                          A                                       B                                          
    --------------------------------------- ---------------------------------------                                          
                                          1                                       1                                          
                                          2                                       2                                          
                                                                                                                             
    SQL> select * from t_target;                                                                                             
                                                                                                                             
                                          A                                       B                                          
    --------------------------------------- ---------------------------------------                                          
                                          2                                      34                                          
                                          2                                    3999                                          
                                                                                                                             
    SQL> merge into t_target using t_source on (t_source.a=t_target.a) when matched then update set t_target.b=t_source.b;   
                                                                                                                             
    Done                                                                                                                     
                                                                                                                             
    SQL> select * from t_target;                                                                                             
                                                                                                                             
                                          A                                       B                                          
    --------------------------------------- ---------------------------------------                                          
                                          2                                       2                                          
                                          2                                       2                                          
                                                                                                                             
    SQL> commit;                                                                                                             
                                                                                                                             
    Commit complete                                                                                                          
                                                                                                                             
    小结:1,对于merge,目标表如果匹配列重复,但源表匹配不重复,会用源表表列新目标表的数据                                     
          2,反之,如果源表匹配列重复,此时merge就会报错,因为不知用源表哪条记录来更新目标表的数据 

     转自   

     http://blog.itpub.net/9240380/viewspace-750968/

  • 相关阅读:
    git 合并多个commit
    git 修改 Commit Message
    git rebase 命令介绍
    git 忘记切换分支,误将代码commit到了别的分支的解决方法
    会话层的会话和传输层中的连接的区别
    Goland 安装 k8s 源码 的步骤
    Linux export 命令的作用
    Linux 执行脚本时 source 和 . 和 sh 和 ./ 的区别
    the connection to the server 6443 was refused
    Kubernetes 创建 Pod 时,背后到底发生了什么?
  • 原文地址:https://www.cnblogs.com/SamuelSun/p/6541133.html
Copyright © 2020-2023  润新知