Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/03/2007, 14h44   #1
Candidat au titre de Membre du Club
 
Inscription : novembre 2006
Messages : 62
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 62
Points : 10
Points : 10
Par défaut mise a jour table oracle

bonjour
voila je voudrais faire une mise a jour entre de tables sous oracle, sachant que ces deux tables
table1 et table2 ont la meme structure champ1, champ2,champ3 et champ4 le champ a mettre
a jour est champ4qui est numerique les autres sont de texte voiçi ma requete sql:

update table1
set champ4=(select champ4 from table2)
where table1.champ1=table2.champ1
table1.champ2=table2.champ2
table1.champ3=table2.champ3;
mais ça ne marche pas?
admcent est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2007, 15h05   #2
Nouveau Membre du Club
 
Inscription : février 2005
Messages : 42
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2005
Messages : 42
Points : 25
Points : 25
Bonjour,

Attention, Vous risquez de mettre à jour par null les occurences qui n'existent pas dans "Table2".

Code :
1
2
3
4
5
6
7
8
9
10
UPDATE table1
SET champ4=(SELECT champ4 FROM table2
WHERE table1.champ1=table2.champ1
table1.champ2=table2.champ2
table1.champ3=table2.champ3
 
WHERE EXISTS (SELECT 1 FROM table2
WHERE table1.champ1=table2.champ1
table1.champ2=table2.champ2
table1.champ3=table2.champ3);
gentarik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2007, 11h27   #3
Candidat au titre de Membre du Club
 
Inscription : novembre 2006
Messages : 62
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 62
Points : 10
Points : 10
Par défaut mise a jour

bonjour
meme si j'avais des nulls c'est pas un probleme je pourrais les remplacer plus tard; le probleme c'est qu'il ya une erreur dans le code sql ; j'ai ORA-00904:invalid column name mais le nom des champs est correct?
admcent est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2007, 11h35   #4
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
ce serait pas mal de chercher un minimum tu crois pas... parce qu'on a pas le modèle de données nous
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2007, 12h03   #5
Candidat au titre de Membre du Club
 
Inscription : novembre 2006
Messages : 62
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 62
Points : 10
Points : 10
Par défaut mis à jour

je l'ai fait croyez moi; seuelement le nom des champs est exact
admcent est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2007, 13h14   #6
Membre actif
 
Inscription : novembre 2004
Messages : 311
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 311
Points : 157
Points : 157
Tu peux pas envoyer une description de tes tables ?



Ce serait plus simple...
davy.g est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2007, 14h07   #7
Candidat au titre de Membre du Club
 
Inscription : novembre 2006
Messages : 62
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 62
Points : 10
Points : 10
Par défaut mise à jour

bien sur voiçi la description
table1:
structure texte
codepp texte
codes texte
montant numérique


table2 idem meme structure la condition de jointure c'est que les champs structure et codepp et codes soit identiques.
merci.
admcent est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2007, 14h16   #8
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
quelle est la requête finalement ? Penses aux balises CODE
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/03/2007, 15h03   #9
Candidat au titre de Membre du Club
 
Inscription : août 2005
Messages : 25
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 25
Points : 10
Points : 10
Envoyer un message via MSN à sanomory Envoyer un message via Yahoo à sanomory
je pense que vous avez oublié de mettre "and" dans la clause WHERE et ensuite les parentheses.

Code :
1
2
3
4
5
6
7
8
9
UPDATE table1
SET champ4=(SELECT champ4 FROM table2
WHERE table1.champ1=table2.champ1
AND table1.champ2=table2.champ2
AND table1.champ3=table2.champ3)
 WHERE EXISTS (SELECT 1 FROM table2
WHERE table1.champ1=table2.champ1
table1.champ2=table2.champ2
table1.champ3=table2.champ3);
sanomory est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2007, 14h32   #10
Candidat au titre de Membre du Club
 
Inscription : novembre 2006
Messages : 62
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 62
Points : 10
Points : 10
Par défaut mise à jour table

Je vous remerçie c'est réglé!
admcent est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h03.


 
 
 
 
Partenaires

Hébergement Web