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

SQL Oracle Discussion :

Update avec jointure sur plusieurs tables


Sujet :

SQL Oracle

Vue hybride

jnauche Update avec jointure sur... 26/11/2015, 10h24
aloisio11 Salut Il faut utiliser les... 26/11/2015, 10h31
jnauche Bonjour, J'ai modifié mon... 26/11/2015, 10h57
al1_24 La syntaxe UPDATE ... JOIN... 26/11/2015, 12h44
jnauche Ma première syntaxe est donc... 26/11/2015, 12h51
mnitu Mais si voir Updating a Join... 27/11/2015, 09h28
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 124
    Par défaut Update avec jointure sur plusieurs tables
    Bonjour,

    Je ne comprends pas pkoi mon update ne passe pas.

    Voici ma requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    update pldem, bidos, zjna
    set pldem.caint_num = zjna.caint_num, pldem.paesi_num = zjna.paesi_num
    where pldem.bidos_num = bidos.bidos_num
    and bidos.totie_cod = zjna.totie_cod
    and bidos.biact_cod = 'GRT'
    L'erreur remontée par SQL Developper est
    Erreur SQL : ORA-00971: mot-clé SET absent
    00971. 00000 - "missing SET keyword"

    J'en déduis que je n'ai pas le droit de mettre plusieurs tables derrière mon update?!?

    Merci pour vos retours.
    Cordialement,
    Julien

  2. #2
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 306
    Par défaut
    Salut

    Il faut utiliser les INNER JOIN

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    update t1 inner join t2 on t1.c0 = t2.c0
    set t1.c1 = 10, t2.c1 = 10;

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 124
    Par défaut
    Bonjour,

    J'ai modifié mon code ainsi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    update pldem 
    inner join bidos on pldem.bidos_num = bidos.bidos_num
    inner join zjna on bidos.totie_cod = zjna.totie_cod
    set pldem.caint_num = zjna.caint_num, pldem.paesi_num = zjna.paesi_num
    where bidos.biact_cod = 'GRT'
    Le message est exactement le même, il bloque sur la première ligne.

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 133
    Par défaut
    La syntaxe UPDATE ... JOIN n'est pas prise en charge par Oracle et n'est pas conforme à la norme du langage SQL non plus.
    La manière la plus simple de faire ce genre d'opération est d'utliser la commande MERGE.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 124
    Par défaut
    Ma première syntaxe est donc fausse?

    --> je viens de regarder la fonction merge. Je ne comprends pas comment la transposer à mon cas

  6. #6
    Membre éclairé
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    306
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 306
    Par défaut
    Désolé je n'avais pas vu que c'était pour Oracle.
    Je ne sais pas alors.
    Mes excuses ...

  7. #7
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Citation Envoyé par al1_24 Voir le message
    La syntaxe UPDATE ... JOIN n'est pas prise en charge par Oracle....
    Mais si voir Updating a Join View
    A lire également Updatable Join Views.

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

Discussions similaires

  1. Requete SQL avec jointure sur trois tables
    Par pit2121 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 19/05/2008, 23h07
  2. Requête SQL avec jointure sur trois tables
    Par pit2121 dans le forum SQL
    Réponses: 0
    Dernier message: 19/05/2008, 20h24
  3. hibernate-criteria : jointure sur plusieurs tables
    Par loic72 dans le forum Hibernate
    Réponses: 9
    Dernier message: 24/09/2007, 17h27
  4. [UPDATE] avec jointure sur une requete
    Par userB dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 20/07/2007, 16h18
  5. update avec condition sur autre table
    Par allowen dans le forum Langage SQL
    Réponses: 5
    Dernier message: 01/04/2005, 15h02

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