oracle - merge实例

Posted wlliac

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle - merge实例相关的知识,希望对你有一定的参考价值。

MERGE INTO
  TBL_MEMBER TM                                   -- 网站会员注册信息表
USING
  (
    SELECT
      SLS_CDE,                                              -- 业务员代码对应员工代码
      DPT_CDE,                                              -- 机构代码
      SLS_NME     AS NAME,                             -- 业务员名称
      SALEGRP_CDE   AS SALEGRPCODE,               -- 营销团队代码
      0 || SUBSTR(CTFCT_TYP,-1,2)    AS CTYPE,    -- 证件类型
      CTFCT_NO    AS CNO,                             -- 证件号码
      C_TEL,                                             -- 电话
      SLS_TYP,                                          -- 人员分类 合同、个人代理(系统员工) 其他、在职(代理人)
      BGN_TM,                                            -- 起始日期
      END_TM,                                            -- 终止日期
      C_DEL                                               -- 逻辑删除标志 0-无效 1-有效
    FROM
      TBL_CS_SALES                                    -- 业务员信息表
  ) TS
ON (
    TM.USER_NAME = TS.SLS_CDE                     -- 业务员代码对应员工代码
    AND TM.DEPT_CODE = TS.DPT_CDE               -- 机构代码
  )
WHEN MATCHED THEN
    UPDATE
    SET
      TM.NAME = TS.NAME,                              -- 业务员名称
      TM.CERTIFICATE_TYPE = TS.CTYPE,       -- 证件类型
      TM.CERTIFICATE_NO = TS.CNO,                -- 证件号码
      TM.USED_FLAG = TS.C_DEL,
      TM.PASSWORD_MODIFIED_DATE = SYSDATE
WHEN NOT MATCHED THEN
    INSERT
    (
      TM.ID,
      TM.USER_NAME,
      TM.PASSWORD,
      TM.RANDOM_STR,
      TM.DEPT_CODE,
      TM.NAME,                                    -- 业务员名称
      TM.CERTIFICATE_TYPE,                      -- 证件类型
      TM.CERTIFICATE_NO,                        -- 证件号码
      TM.MOBILE_PHONE,
      TM.PASSWORD_MODIFIED_DATE,
      TM.USED_FLAG,                            -- 是否可用 0-无效 1-有效
      TM.MEMBER_TYPE,                           -- 内部用户类别 0:业务员
      TM.ROLE_TYPE_CODE,                      -- 角色类型 2:内部用户
      TM.MEMBER_FLAG                            -- 用户标识 99:诉责险
     
    )
    VALUES
    (
      SEQ_TBL_MEMBER_ID.NEXTVAL,
      TS.SLS_CDE,                                 -- 业务员代码对应员工代码
      TS.DPT_CDE,                                -- 机构代码
      ‘56a5aa0561ddd3b88b924315043cf6fb‘,   -- 初始密码
      ‘6Umt‘,                                       -- 盐码
      TS.NAME,                                    -- 业务员名称
      TS.CTYPE,                                   -- 证件类型
      TS.CNO,                                     -- 证件号码
      TS.C_TEL,
      SYSDATE,
      TS.C_DEL,
      ‘0‘,
      ‘2‘,
      ‘99‘
    );



































































以上是关于oracle - merge实例的主要内容,如果未能解决你的问题,请参考以下文章

oracle - merge实例二 同步代理人

我可以在 Oracle 中进行原子合并吗?

oracle merge into 表里面的一部分数据怎样做?

oracle中merge方法

oracle merge into 的这个该怎么用

oracle merge into 语法