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实例的主要内容,如果未能解决你的问题,请参考以下文章