合并到匹配的woron

时间:2011-03-30 15:18:58

标签: database oracle

我试图合并到一个表中。

这个选择找不到任何东西:

select * from dpr where dpr_qot_id=1111;

然后我像下面这样运行这个合并:

MERGE INTO dpr d
USING (select dpr_ts, dpr_qot_id
         from dpr
        where dpr_qot_id = 1111
          and dpr_ts = to_date('30.11.1999', 'DD.MM.YYYY')) s
on (s.dpr_ts = d.dpr_ts and s.dpr_qot_id = d.dpr_qot_id)
when not matched then
  insert
    (DPR_TS,
     DPR_CLOSE,
     DPR_OPEN,
     DPR_HIGH,
     DPR_LOW,
     DPR_VOLUME,
     DPR_QOT_ID)
  values
    (to_date('30.11.2010', 'DD.MM.YYYY'),
     21.66,
     21.75,
     22.005,
     21.66,
     2556.00,
     1111)
WHEN MATCHED THEN
  UPDATE
     set DPR_CLOSE  = 21.66,
         DPR_OPEN   = 21.75,
         DPR_HIGH   = 22.005,
         DPR_LOW    = 21.66,
         DPR_VOLUME = 2556.00;

仍然这个选择找不到任何东西:

select * from dpr where dpr_qot_id=1111;

我做错了什么?

谢谢!

问候 玛格达

1 个答案:

答案 0 :(得分:3)

由于dpr_qot_id = 1111没有dpr行,因此MATCH的源(USING)查询也不包含任何行,因此没有数据要合并 - 所以什么也没做。