faire un update avec une jointure oracle - SQL/NoSQL - Programmation
Marsh Posté le 08-08-2005 à 12:01:49
déjà, "where exists" sera mieu (rajoute simplement le "exists" )
sinon, avec sql server, il y a une syntaxe permettant de faire directement une jointure lors de l'update. ce n'est pas la même syntaxe mais bon, ça te donne au moins l'info :
update table1
set val = 'I'
from table2
where no_msg = table2.no_msg
and table2.code_err = 'E'
Marsh Posté le 08-08-2005 à 12:36:23
oui je mettais le existe ;-) oublié de le mettre sur le forum.
voici une copie de ma requete... mais ca marche pas ca met 2000plombes... et ca se debloque jamais.
Marsh Posté le 08-08-2005 à 12:36:37
update HOSTCOM_MSG_DETAIL set VAL='I' where exists |
Marsh Posté le 08-08-2005 à 13:05:29
essaye :
Code :
|
Marsh Posté le 08-08-2005 à 13:09:52
A mon avis, il te manque une condition supplémentaire dans ton WHERE, parce que là, tu vas mettre 'I' partout ou nul part, selon que ton sous-select sera vrai ou faux.
Marsh Posté le 08-08-2005 à 14:13:16
en effet, la solution d'OraFrance me semble mieu, celle d'olicel est buggée en effet !
Marsh Posté le 08-08-2005 à 14:19:36
c bon j'ai tenté celle d'orafrance, et j'ai compris ma betise. merci a tous
Marsh Posté le 08-08-2005 à 11:56:49
bonjour,
j'ai besoin d'un coup de pouce pour ma requete SQL.
J'ai table1 avec colonne NO_MSG, CLE, VAL et table 2 avec NO_MSG, CODE_ERR
Je voudrais update la colonne VAL de la table1 lorqsue table1.NO_MSG=table2.NO_MSG and COE_ERR='E'.
J'ai tenté ca mais ca marche pas... ca s'execute mas 5H apres la requete est tj pa fini ..
update table1 set VAL='I' where (select 1 from table1, table2 where CODE_ERR='E' and table1.NO_MSG=table2.NO_MSG)
une petite correction svp ;-)
merci
olivier
PS: je suis sous oracle 8.1.7
Message édité par olicel le 08-08-2005 à 11:57:03