oracle – merge实例二 同步代理人

MERGE INTO
    TBL_MEMBER TM                                   – 网站会员注册信息表
USING
(
    SELECT
        CHA_CDE,
        CHA_NME,
        CHA_ABBR,
        DPT_CDE,
        STATUS_CHA,
        AUTH_FLAG,
        CHA_MRK,
        CHA_CLS,
        0 || SUBSTR(CHA_TYPE,0,1) CTYPE,
        C_CERTF_NO,
        C_TEL,
        C_MAIL,
        C_ZIP_CDE,
        C_ADDR,
        CERTER_TYPE,
        CREATOR,
        CREATOR_DATE,
        MODIFIER,
        CHA_ADB_TM,
        CHA_LIC_END_TM,
        SLS_CDE,
        C_LICENSE,
        QLFT_NO,
        AGENCY_DPT_CDE,
        SALES_CHANNEL_CODE
    FROM
        TBL_AGENT
    WHERE SUBSTR(DPT_CDE,0,2) IN (‘72‘,‘74‘)    
) TS
ON
(
    TM.USER_NAME = TS.CHA_CDE                   – 渠道编码
    AND TM.DEPT_CODE = TS.DPT_CDE               – 机构代码
)
WHEN MATCHED THEN
    UPDATE
    SET
    TM.NAME = TS.CHA_NME,                       — 渠道名称
    TM.CERTIFICATE_TYPE = TS.CTYPE,                — 证件类型
    TM.CERTIFICATE_NO = TS.C_CERTF_NO,            — 证件号码
    TM.USED_FLAG = TS.STATUS_CHA,                — 是否有效 0失效;1有效
    TM.ENABLED_FLAG = TS.AUTH_FLAG,             — 是否激活
    TM.PASSWORD_MODIFIED_DATE = SYSDATE
WHEN NOT MATCHED THEN
    INSERT
    (
      TM.ID,
      TM.USER_NAME,
      TM.PASSWORD,
      TM.RANDOM_STR,
      TM.DEPT_CODE,
      TM.CERTIFICATE_TYPE,                      – 证件类型
      TM.CERTIFICATE_NO,                        — 证件号码
      TM.MOBILE_PHONE,
      TM.ENABLED_FLAG,
      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.CHA_NME,                           — 渠道名称
      ‘56a5aa0561ddd3b88b924315043cf6fb‘,   — 初始密码
      ‘6Umt‘,                               — 盐码
      TS.DPT_CDE,                           — 机构代码
      TS.CTYPE,                             — 证件类型
      TS.C_CERTF_NO,                        — 证件号码
      TS.C_TEL,
      TS.AUTH_FLAG,
      SYSDATE,
      TS.STATUS_CHA,
      ‘0‘,
      ‘2‘,
      ‘99‘
    );