j'ai cet exemple simple je ne peux pas semble obtenir le fonctionnement:Oracle MERGE ne pas insérer
MERGE INTO mytable mt
USING dual
ON (mt.id = 'AAA')
WHEN MATCHED THEN
UPDATE SET mt.name = 'updated'
WHEN NOT MATCHED THEN
INSERT (mt.id , mt.name)
VALUES ('AAA', 'Gooood');
Si un enregistrement « AAA » existe dans le tableau, il est mis à jour avec succès.
Mais si n'existe pas, il est pas inséré:
Affected rows: 0
Time: 0.003ms
Toute idée sur ce que je fais mal?
Quel outil utilisez-vous "qui répond: 0 lignes affectées Temps: 0.003ms"? –
On se demande si l'OP fusionne sans commit dans une session et demande à partir d'un autre. Ou si l'application existante interprète correctement la sortie de l'analogue de SQL% ROWCOUNT. –
Est-il possible que votre table 'mytable' nécessite plus que simplement' id' et 'name' pour faire une insertion valide? –