合并语句与Oracle SQL中的ON子句不匹配

安德鲁

我有oracle sql merge语句查询,我想在其中将数据合并PROCESS_MONITOR_STATISTICTEMP_PROCESS_MONITOR_STATISTIC表中。
ID是在PROCESS_MONITOR_STATISTIC表中生成的序列因此,我始终希望将数据放入TEMP_PROCESS_MONITOR_STATISTICID大于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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章