1) 所有的数据进 原始表后,将标志位置为0,表示为未处理过。 (以前有系统用的触发器处理,进该表的时候触发insert)。
2)将原始表标标志位为0 更新进中间表。 然后再原始表标志位置为1,表示数据已经更新过。
MERGE
INTO
T T1
USING ( SELECT '1001' AS a,2 AS b FROM dual) T2
ON ( T1.a = T2.a)
WHEN MATCHED THEN
UPDATE SET T1.b = T2.b
WHEN NOT MATCHED THEN
INSERT (a,b) VALUES (T2.a,T2.b);
USING ( SELECT '1001' AS a,2 AS b FROM dual) T2
ON ( T1.a = T2.a)
WHEN MATCHED THEN
UPDATE SET T1.b = T2.b
WHEN NOT MATCHED THEN
INSERT (a,b) VALUES (T2.a,T2.b);
3)一般还需要对维表进行转换成对应的编码。