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 :

UPDATE globale à partir d'un SELECT


Sujet :

Oracle

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1
    Points : 1
    Points
    1
    Par défaut UPDATE globale à partir d'un SELECT
    Bonjour,

    Dans SYBASE il y a une possiblité de faire une mise à jour globale à partir d'un select :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    update MAtable1
    set col2 = b.col5, 
         col3 = c.col4
    from MAtable1 a, MAtable2 b, MAtable3 c 
    where a.col1 = b.col1 and b.col2 = c.col1
    Je souhaite avoir l'équivalent avec ORACLE 10g (en faite je veux éviter l'utilisation d'un curseur).

    je pensais avoir trouvé une synthaxe équivalente mais ça ne fonctionne pas :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    update MAtable1 a, MAtable2 b, MAtable3 c
    set a.col2 = b.col5, 
         a.col3 = c.col4
    where a.col1 = b.col1 and b.col2 = c.col1      ;

    merci d'avance

  2. #2
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Ce n'est pas possible d'Updater plusieurs TABLES en même temps sur Oracle.
    Mais tu peux updater plusieurs colonnes d'une même table avec un select
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    update MAtable1 a
    set (a.col2, a.col3) = SELECT b.col5, c.col4 FROM MATABLE2 b, matable3 c
                                   where a.col1 = b.col1 and b.col2 = c.col1);

  3. #3
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Attention, le SELECT ne doit ramener qu max qu'une seule ligne.
    Si pas de ligne => ça met NULL.

Discussions similaires

  1. Update a partir d'un select
    Par olibara dans le forum Langage SQL
    Réponses: 7
    Dernier message: 12/10/2008, 19h03
  2. Update d'une table a partir d'un select recursif
    Par olibara dans le forum Langage SQL
    Réponses: 1
    Dernier message: 17/05/2008, 09h44
  3. Update a partir d'une selection
    Par choubak dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 29/05/2007, 17h28
  4. [oracle 9i]update à partir d'une selection complexe
    Par Requin15 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 13/06/2006, 10h18
  5. [MySQL] update a partir du resultat d'un select
    Par brice01 dans le forum Langage SQL
    Réponses: 10
    Dernier message: 05/04/2006, 22h44

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