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 17/12/2010, 12h31   #1
Nouveau Membre du Club
 
Hazem Krichene
Inscription : novembre 2010
Messages : 99
Détails du profil
Informations personnelles :
Nom : Hazem Krichene

Informations forums :
Inscription : novembre 2010
Messages : 99
Points : 26
Points : 26
Par défaut Requête update sql

Bonjour à tous,

j'ai deux tables sous oracle, la première CLIENT la deuxième MVT_COMPTE, j'ai modifié quelques valeurs d'une colonne de la table CLIENT et je voudrais mettre à jour celle de la table MVT_COMPTE, vu qu'elle doit être la même. Voici la requête update que j'ai utilisé:

Code :
1
2
 
UPDATE mvt_compte SET mvt_compte.raison_sociale=client.raison_sociale WHERE mvt_compte.id = client.id
Mais elle ne marche pas. Il me renvoie l'erreur

ORA-00904: "CLIENT"."ID" : identificateur non valide

Malgré que la colonne ID existe bien (en fait en écrivant client. il m'affiche la liste déroulante contenant ID )

Pourrais je trouver la réponse chez quelqu'un SVP ?
hazem2410 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 13h47   #2
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 463
Points : 10 463
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Par exemple, comme ceci :
Code :
1
2
3
4
5
6
7
8
9
UPDATE mvt_compte mvt
   SET mvt.raison_sociale = (SELECT cli.raison_sociale
                               FROM client cli
                              WHERE mvt.id = cli.id)
-- Ligne suivante à rajouter si vous ne voulez pas modifier les valeurs
-- dont les id n'existent pas dans la table client
 WHERE EXISTS (SELECT NULL
                 FROM client cli
                WHERE mvt.id = cli.id);
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 14h55   #3
Nouveau Membre du Club
 
Hazem Krichene
Inscription : novembre 2010
Messages : 99
Détails du profil
Informations personnelles :
Nom : Hazem Krichene

Informations forums :
Inscription : novembre 2010
Messages : 99
Points : 26
Points : 26
Merci pour la réponse. En fait j'ai écrit cette requête, ça ne renvoie pas d'erreur, mais la table n'est pas mise à jour je ne sais pas pourquoi!!
hazem2410 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 15h12   #4
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 463
Points : 10 463
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
N'oubliez pas le commit !
__________________
Email : http://scr.im/waldar
Waldar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 15h23   #5
Nouveau Membre du Club
 
Hazem Krichene
Inscription : novembre 2010
Messages : 99
Détails du profil
Informations personnelles :
Nom : Hazem Krichene

Informations forums :
Inscription : novembre 2010
Messages : 99
Points : 26
Points : 26
j'ai essayé avec le commit mais ça marche pas!!!!!

Y a pas peut être une autre méthode.
hazem2410 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 15h36   #6
Rédacteur
 
Homme Salim
Développeur et DBA Oracle
Inscription : octobre 2006
Messages : 872
Détails du profil
Informations personnelles :
Nom : Homme Salim
Localisation : Canada

Informations professionnelles :
Activité : Développeur et DBA Oracle

Informations forums :
Inscription : octobre 2006
Messages : 872
Points : 1 100
Points : 1 100
Salut,

Dans ton cas, je pense que c'est mieux d'utilser le merge.

http://www.oracle-developer.net/display.php?id=203

http://psoug.org/reference/merge.html
__________________
Publications: http://schelabi.developpez.com/
salim11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 16h31   #7
Nouveau Membre du Club
 
Hazem Krichene
Inscription : novembre 2010
Messages : 99
Détails du profil
Informations personnelles :
Nom : Hazem Krichene

Informations forums :
Inscription : novembre 2010
Messages : 99
Points : 26
Points : 26
Citation:
Envoyé par salim11 Voir le message
Salut,

Dans ton cas, je pense que c'est mieux d'utilser le merge.

http://www.oracle-developer.net/display.php?id=203

http://psoug.org/reference/merge.html
SVP pourriez vous m'expliquer de quoi il s'agit ce merge? c'est pas très clair
hazem2410 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 16h38   #8
Nouveau Membre du Club
 
Hazem Krichene
Inscription : novembre 2010
Messages : 99
Détails du profil
Informations personnelles :
Nom : Hazem Krichene

Informations forums :
Inscription : novembre 2010
Messages : 99
Points : 26
Points : 26
En fait voici le code que j'ai écrit :

Code :
1
2
3
4
5
6
 
MERGE INTO mvt_compte mvt
USING client cli    
ON (mvt.id = cli.id)
WHEN MATCHED THEN UPDATE 
	SET mvt.raison_sociale = cli.raison_sociale
Mais aucun changement dans la table MVT_COMPTE!!
hazem2410 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 16h47   #9
Rédacteur
 
Homme Salim
Développeur et DBA Oracle
Inscription : octobre 2006
Messages : 872
Détails du profil
Informations personnelles :
Nom : Homme Salim
Localisation : Canada

Informations professionnelles :
Activité : Développeur et DBA Oracle

Informations forums :
Inscription : octobre 2006
Messages : 872
Points : 1 100
Points : 1 100
Peut être tu as oublié le commit .
__________________
Publications: http://schelabi.developpez.com/
salim11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 17h13   #10
Modérateur
 
Homme Fabien
Ingénieur d'études en décisionnel
Inscription : septembre 2008
Messages : 5 684
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 34
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études en décisionnel
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2008
Messages : 5 684
Points : 10 463
Points : 10 463
Envoyer un message via ICQ à Waldar Envoyer un message via Skype™ à Waldar
Ou peut-être que votre jointure sur les deux id ne répond pas au besoin.
Mais les syntaxes proposées sont correctes.

Ce sont soit vos données, soit la jointure, soit le commit !
__________________
Email : http://scr.im/waldar
Waldar 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 03h42.


 
 
 
 
Partenaires

Hébergement Web