Следующий оператор слияния не вставляет (не соответствует) запись.
Запрос, используемый в части Condition предложения Merge, иногда не возвращает ни одной строки.
Это приводит к тому, что вставка не происходит?
MERGE INTO apps.test_table ab USING
(SELECT batch_id
FROM apps.test_table
WHERE session_name='session_name'
AND status ='NOT STARTED'
)b ON (ab.batch_id=b.batch_id)
WHEN MATCHED THEN
UPDATE
SET STATUS ='RUNNING',
tag_receive_time = sysdate,
sess_start_time = SYSDATE,
wflw_start_time = sysdate
WHERE batch_id = b.batch_id
WHEN NOT MATCHED THEN
INSERT
(
ab.batch_id,
ab.status,
ab.workflow_name,
ab.session_name,
ab.source_name,
ab.target_table,
ab.created_by,
ab.creation_date,
ab.snapshot_date,
ab.tag_receive_time,
ab.sess_start_time,
ab.wflw_start_time
)
VALUES
(
apps.batch_id_seq.nextval,
'RUNNING',
'$PMWorkflowName',
'$PMSessionName',
'AMPS',
'SPARES_F_ORDER_SHIPMENT_DTL',
'Informatica',
SYSDATE,
SYSDATE,
SYSDATE,
SYSDATE,
SYSDATE
)
;
show errors
? Кстати, удалите частьWHERE batch_id = b.batch_id
из инструкции Update. - person Barbaros Özhan   schedule 04.11.2019when not matched
часть этого оператора слияния не имеет значения, и вы должны удалить ее. - person Boneist   schedule 04.11.2019