Bonjour tout le monde,
J'ai un souci avec cette requête :
En effet, après le "when matched then", l'update fonctionne bien mais pas le delete... qui ne met pas d'erreur mais ne supprime rien.
Voyez-vous un problème de syntaxe??
Merci d'avance!
Bonjour tout le monde,
J'ai un souci avec cette requête :
En effet, après le "when matched then", l'update fonctionne bien mais pas le delete... qui ne met pas d'erreur mais ne supprime rien.
Voyez-vous un problème de syntaxe??
Merci d'avance!
N'étant pas un pro du Merge je ne peux que te conseiller la doc officielle d'Oracle
https://docs.oracle.com/cd/B28359_01...htm#SQLRF01606
qui explique comment gérer les erreurs dans le bloc "error_logging_clause".
Avec cette gestion des erreurs, peut-être que tu comprendras ce qui se passe.
Maintenant, s'il n'y a aucune erreur, peut-être que la clause WHERE de ton DELETE ne ramène rien.
Bonjour,
En retirant les apostrophes autour de &1 ça donne quoi ?
J'imagine que c'est un chiffre vu les conditions avec des >= et des <.
Avec les apostrophes vous le traitez en tant que chaîne de caractère, ce qui n'est pas forcément conseillé pour une comparaison numérique.
Ce n'est pas forcément logique, mais le DELETE ne s'applique qu'aux lignes qui viennent de passer par l'UPDATE.
Vos conditions étant mutuellement exclusives, effectivement vous n'aurez pas de suppression.
Supprimez le WHERE de la partie UPDATE, ça devrait fonctionner comme attendu.
Merci pour vos réponses, je vais tester en supprimant le "Where" lundi!
Bon week end à tous.
Bon...
Je suis désolé de vous avoir dérangé pour rien!
C'est certainement vrai pour le "Where" de l'update, mais le soucis est que j'essayai de supprimer des lignes qui ne correspondent pas dans le "matched"...
Bonne journée à vous!
Partager