В каких случаях полезно использовать или / nvl combo в обновлении слиянием и для чего это нужно?(Если это вообще хорошо).Типичная структура ниже.
MERGE INTO data_table p
USING (SELECT pk,
col1,
col2,
col3
FROM incoming_data_table) pp
ON (p.pk = pp.pk)
WHEN MATCHED THEN
UPDATE
SET p.col1 = pp.col1,
p.col2 = pp.col2,
p.col3 = pp.col3
WHERE nvl(p.col1, '0') != nvl(pp.col1, '0') -- Line in question
OR nvl(p.col2, '0') != nvl(pp.col2, '0') -- Line in question
OR nvl(p.col3, '0') != nvl(pp.col3, '0') -- Line in question
WHEN NOT MATCHED THEN
INSERT
(p.pk,
p.col1,
p.col2,
p.col3)
VALUES
(pp.pk,
pp.col1,
pp.col2,
pp.col3);