MERGE INTO dpr d
USING (select 3333 dpr_qot_id, to_date('1-Jun-07', 'DD-MON-RR') dpr_ts
from dual) 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_OPEN,
DPR_HIGH,
DPR_LOW,
DPR_CLOSE,
DPR_VOLUME,
DPR_QOT_ID)
values
(to_date('1-Jun-07', 'DD-MON-RR'),
920,
941.5,
915,
933.5,
696218,
3333)
WHEN MATCHED THEN
UPDATE
set DPR_OPEN = 920,
DPR_HIGH = 941.5,
DPR_LOW = 915,
DPR_CLOSE = 933.5,
DPR_VOLUME = 696218;
У меня есть цикл с похожими запросами (разные даты, цены).в любом случае иногда я получаю сообщение об ошибке: уникальное ограничение (QF.IDX_DPR_ID) нарушено (DBD ERROR: OCIStmtExecute).уникальное ограничение определено для DPR_ID, который генерируется триггером.Любая подсказка, как я могу это исправить?цикл написан на Perl.я ожидаю, что такого рода ошибки не будут появляться при использовании слияния, не знаю, что я делаю неправильно.Я могу выполнить его в PL / SQL.ошибка происходит «только» в цикле.это какая-то проблема со временем?
спасибо заранее привет магда