|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité régulier
![]() Inscription : juillet 2003 Messages : 70 ![]() |
Bonjour,
Peut-être que la question va sembler très simple... mais je débute avec le SQL, avant je travaillais sous access... Voila, je dois faire un update sur une table mais dans ma condition where, je dois faire appel à des conditions d'autres tables et je ne sais pas trop comment faire... Voici un exemple. Code :
Et si je fait Code :
merci d'avance pour votre aide... |
||||
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() Inscription : juin 2003 Messages : 156 ![]() |
Le Update Table1, Table2 fonctionne-t-il sous Oracle ? Ca me surprend cette syntaxe.
|
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : juillet 2003 Messages : 70 ![]() |
non justement j'ai un message qui m'indique qu'il manque le SET.
je ne sais pas trop comment faire... |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Inscription : avril 2005 Messages : 1 672 ![]() |
En tout cas ça m'étonnerait fort qu'Oracle accepte qu'un alias commence par un caractère numérique...
__________________
Modérateur des forums Oracle et Langage SQL Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum |
|
|
00
|
|
|
#5 | ||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 450 ![]() |
Non, c'est juste qu'un UPDATE n'accepte qu'une seule table de mise à jour
Ensuite pour la condition sur les lignes, faut faire du sous select (soit par EXISTS soit avec un IN, tout dépend du modele) Code :
|
||
|
|
00
|
|
|
#6 | ||
|
Membre Expert
![]() Inscription : avril 2005 Messages : 1 672 ![]() |
Je suis d'accord mais je persiste :
Code :
__________________
Modérateur des forums Oracle et Langage SQL Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum |
||
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() Inscription : juillet 2003 Messages : 70 ![]() |
Merci pour vos réponses. Effectivement, dans mon SQL, je n'ai pas d'alias numéric, c'était pour l'exemple.
L'autre problème que j'ai c'est que mon select qui vient alimenter le SET de l'update ramène plusieurs enregistrements : ex: sur ligne1 MAJ de l'enregistremlent 1 sur la ligne2 MAJ l'enregistremlent 2 j'ai une erreur: ORA-01427: single-row subquery returns more than one row |
|
|
00
|
|
|
#8 | |||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 450 ![]() |
Citation:
Alias "1" c'est sur ça marchera jamais, en update comme en select. |
|||
|
|
00
|
|
|
#9 |
|
Membre actif
![]() Inscription : décembre 2005 Messages : 138 ![]() |
C'est sur que si ton subselect renvoit plus d'une ligne, l'update ne pourra pas se faire correctement. Tu dois trouver le moyen de renvoyer une seule ligne dans ton subselect, soit en ajoutant une clause where ou en utilisant une fonction d'aggrégation, dépendemment de ton besoin...
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com