MERGE INTO
表a和表b做比对,表b存在表a中的数据就更新,如果表b数据不存在表a中那么就插入on()中是对比条件 该功能是Oracle 9i引入的功能
表a也可以是带条件的语句
在更新时,不能更新对比条件中的内容,否则会报错
在插入时,也可以填写缺省值,
MERGE INTO TRUST_Allow_Redempt_info a USING
(SELECT
FUNDCODE,SHARECLASS,SHAREREGISTERDATE,ALLOWREDEMPTDATE,ADDFLAG,TANO
FROM TRUST_EX_FILE_C6) b ON (a.fundcode = b.fundcode AND a.TANO = b.tano)
when matched THEN
UPDATE SET
a.SHARECLASS = b.SHARECLASS,
a.SHAREREGISTERDATE = b.SHAREREGISTERDATE,
a.ALLOWREDEMPTDATE = b.ALLOWREDEMPTDATE,
a.ADDFLAG = b.ADDFLAG
when not matched THEN
INSERT
(
a.FUNDCODE,
a.SHARECLASS,
a.SHAREREGISTERDATE,
a.ALLOWREDEMPTDATE,
a.ADDFLAG,
a.TANO
)
VALUES
(
b.FUNDCODE,
b.SHARECLASS,
b.SHAREREGISTERDATE,
b.ALLOWREDEMPTDATE,
b.ADDFLAG,
b.TANO
)