我有oracle sql merge语句查询,我想在其中将数据合并PROCESS_MONITOR_STATISTIC
到TEMP_PROCESS_MONITOR_STATISTIC
表中。
ID是在PROCESS_MONITOR_STATISTIC
表中生成的序列。因此,我始终希望将数据放入TEMP_PROCESS_MONITOR_STATISTIC
ID大于ID中的ID的表中PROCESS_MONITOR_STATISTIC
。这样,TEMP_PROCESS_MONITOR_STATISTIC
当我执行查询时,我总是希望将最新数据插入表中。我尝试了此查询,但未得到最新数据。
merge into TEMP_PROCESS_MONITOR_STATISTIC TSM
using (
select * from
(select ID,PROCESS_MONITOR_ID,PROCESS_START_DATE from
PROCESS_MONITOR_STATISTIC@FONIC_RETAIL) where rownum<=1000
) data
ON (TSM.ID > data.ID)
when not matched then
insert(ID,PROCESS_MONITOR_ID,PROCESS_START_DATE)
values(data.ID,data.PROCESS_MONITOR_ID,data.PROCESS_START_DATE);
如果您要做的只是“将项目从A插入表B,但尚不存在”。
这应该做到这一点:
INSERT INTO TEMP_PROCESS_MONITOR_STATISTIC
select ID,PROCESS_MONITOR_ID,PROCESS_START_DATE
from PROCESS_MONITOR_STATISTIC@FONIC_RETAIL
minus
select ID,PROCESS_MONITOR_ID,PROCESS_START_DATE
from TEMP_PROCESS_MONITOR_STATISTIC;
无需合并。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句