Bonjour,
Je souhaiterais savoir s'il est possible (en fait j'ai déjà recherché mais je n'ais pas de réponse) de faire un MERGE sans clause WHEN NOT MATCHED
Je suis en version 9iR2 (pour la syntaxe).
Merci par avance
Bonjour,
Je souhaiterais savoir s'il est possible (en fait j'ai déjà recherché mais je n'ais pas de réponse) de faire un MERGE sans clause WHEN NOT MATCHED
Je suis en version 9iR2 (pour la syntaxe).
Merci par avance
çà revient un peu un UPDATE alors ?Envoyé par Patmane
y'a un truc que je pige pas là
Pas d'accord
Donne moi le Update (aussi peu couteux qui plus est) que cette instruction merge (par exemple)
Voila je voudrais faire un truc un peu comme ca, mais ca ne compile pas car le WHEN NOT MATCHED est obligatoire (et le INSERT obligatoire derrière WHEN NOT MATCHED)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 MERGE INTO detailFacture df USING (SELECT * FROM facture WHERE mag=0) f ON (df.numFacture=f.id) WHEN MATCHED THEN UPDATE SET dateFac=f.dateFac, dateLiv=f.dateLiv, mag=f.mag;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Merge ... When Not Matched Then Insert <...> Values <...> Where 1=2 ; End;
oui je voudrais bien mais..... j'ai pas le droit de mettre une clause where dans le INSERT d'un WHEN NOT MATCHED!!!
Un update du style est-il réellement beaucoup moins performant que l'instruction merge ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 update detailFacture set (dateFac, dateLiv, mag) = (select dateFac, dateLiv, mag from facture where mag = 0 and id = numFacture) where exists (select 1 from facture where mag = 0 and id = numFacture)
Partager