|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Inscription : juillet 2003 Messages : 70 ![]() |
Bonjour,
Je débute sous Oracle et j'ai voudrais faire un UPDATE sur une table mais sur plusieurs champs et plusieurs enregistrements. La MAJ de ces enregistrements sont fonction d'un SELECT et donc peuvent changer pour chaque enregistrements. J'ai fais le SELECT, il fonctionne bien, j'ai fais l'update, il fonction lorsque mon select me ramène qu'un seul enregistrement, mais dès que le select est multi lignes, j'ai le message d'erreur suivant: ORA-01427: single-row subquery returns more than one row Je ne comprends pas trop, on dirait que l'update fonctionne que pour mettre à jour la même infos dans tous les enregistrements de la table... Auparavant, je travaillais sous ACCESS et cela était possible! Je pense qu'il doit y avoir une manip particulière que j'ignore... Pour info, mon update est du format: Code :
|
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 450 ![]() |
C'est une erreur basique :
L'update se fait sur chaque ligne. Pour chaque ligne, oracle lance le select champ4.. pour mettre à jour les colonnes. Si ton select ramène plus d'une seule ligne, Oracle n'en choisit pas une au hasard, il sort en erreur. A toi d'avoir 0 ou 1 ligne dans ton select |
|
|
00
|
|
|
#3 | ||||
|
Invité régulier
![]() Inscription : juillet 2003 Messages : 70 ![]() |
Merci pour ton aide
mais alors, comment faire pour mettre à jour plusieurs enregistrements avec des infos différentes. Je m'explique le resultat de mon select est de la forme Code :
Code :
Dans mon select, j'ai bien les liens pour retrouver sur quelle ligne appliquer ces résultats. |
||||
|
|
00
|
|
|
#4 | ||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 450 ![]() |
Il faut que ton select ramène 150107
quand cde = 1 et ligne = 1 ramène 230107 quand cde = 1 et ligne = 2 Code :
|
||
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : juillet 2003 Messages : 70 ![]() |
Tout à fait. Merci pour ton aide.
En fait je crois que le problème venait du fait que je faisais référence à la table à mettre à jour dans mon from de ma sous requete. En supprimant cette référence, les enegsitrements ont l'air de bien se mettre à jour même s'il y en a plusieurs. Je refais des tests. Je reviens vers vous pour vous dire |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com