我正在尝试合并到一个表中。
这个选择没有找到任何东西:
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;
我做错了什么?
谢谢!
问候语 玛格达
最佳答案
由于在 dpr_qot_id=1111 处没有 dpr 行,您的 MATCH 的源 (USING) 查询也将不包含任何行,因此没有要合并的数据 - 因此什么都不做。
关于database - 合并到比赛中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5488336/