J'ai ci-dessous la requête de fusion où je veux mettre à jour la date et pour le problème de perfromance j'utilise la logique ROWID
.Fusionner à l'aide de la mise à jour insérer de nouvelles lignes
Mais je voudrais savoir si elle insère de toute façon de nouvelles lignes? Je veux juste mettre à jour la table TEST_GRP
et ne veux pas l'insertion de nouvelles lignes. Comme j'utilise la logique ROWID
pour la première fois, je ne suis vraiment pas sûr si elle insère de nouvelles lignes ou simplement mettre à jour la table.
MERGE INTO TEST_GRP tgt
USING (SELECT ID,
ROWID r_id,
row_number() over (partition by ID ORDER BY DT_DATE) rn
FROM TEST_GRP) src
ON (tgt.rowid = src.r_id AND src.rn = 1)
WHEN MATCHED THEN
UPDATE SET DT_DATE = to_date('01.01.2017', ''dd.mm.yyyy'')
WHERE DT_DATE != to_date('01.01.2016', ''dd.mm.yyyy'')
and DB_NAME = 'ARD';
Je suis curieux de savoir pourquoi les dates sont différentes dans votre mise à jour par rapport à la clause where. "Mise à jour au 01.01.2017 sauf si la date est 01.01.2016". –