IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

Requête update sql


Sujet :

Oracle

  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2010
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 163
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ?

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Par exemple, comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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);

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2010
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 163
    Par défaut
    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!!

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    N'oubliez pas le commit !

  5. #5
    Membre confirmé
    Inscrit en
    Novembre 2010
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 163
    Par défaut
    j'ai essayé avec le commit mais ça marche pas!!!!!

    Y a pas peut être une autre méthode.

  6. #6
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Par défaut
    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

  7. #7
    Membre confirmé
    Inscrit en
    Novembre 2010
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 163
    Par défaut
    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

  8. #8
    Membre confirmé
    Inscrit en
    Novembre 2010
    Messages
    163
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 163
    Par défaut
    En fait voici le code que j'ai écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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!!

  9. #9
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Par défaut
    Peut être tu as oublié le commit .

  10. #10
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    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 !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requête update SQL
    Par me_for_ever dans le forum Langage SQL
    Réponses: 2
    Dernier message: 16/02/2012, 13h02
  2. requête update (SQL SERVER 2005)
    Par bonomsoleil dans le forum VB.NET
    Réponses: 6
    Dernier message: 11/08/2008, 18h52
  3. Problème requète update, sql server 2000
    Par Guena5635 dans le forum Développement
    Réponses: 3
    Dernier message: 28/04/2008, 11h32
  4. [SQL] Erreur requête Update
    Par arnaudrou dans le forum PHP & Base de données
    Réponses: 20
    Dernier message: 23/04/2006, 17h38
  5. [SQL] problème avec ma requête UPDATE
    Par carmen256 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 07/04/2006, 12h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo