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 :

MERGE sans clause WHEN NOT MATCHED


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 50
    Par défaut MERGE sans clause WHEN NOT MATCHED
    Bonjour,

    Je souhaiterais savoir s'il est possible (en fait j'ai déjà recherché mais je n'ais pas de réponse) de faire un MERGE sans clause WHEN NOT MATCHED

    Je suis en version 9iR2 (pour la syntaxe).

    Merci par avance

  2. #2
    Membre éclairé
    Inscrit en
    Novembre 2002
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 549
    Par défaut
    Citation Envoyé par Patmane
    Bonjour,

    Je souhaiterais savoir s'il est possible (en fait j'ai déjà recherché mais je n'ais pas de réponse) de faire un MERGE sans clause WHEN NOT MATCHED

    Je suis en version 9iR2 (pour la syntaxe).

    Merci par avance
    çà revient un peu un UPDATE alors ?

    y'a un truc que je pige pas là

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 50
    Par défaut
    Pas d'accord

    Donne moi le Update (aussi peu couteux qui plus est) que cette instruction merge (par exemple)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    MERGE INTO detailFacture df
    USING (SELECT * FROM facture WHERE mag=0) f 
    ON (df.numFacture=f.id)
    WHEN MATCHED THEN 
      UPDATE SET dateFac=f.dateFac, dateLiv=f.dateLiv, mag=f.mag;
    Voila je voudrais faire un truc un peu comme ca, mais ca ne compile pas car le WHEN NOT MATCHED est obligatoire (et le INSERT obligatoire derrière WHEN NOT MATCHED)

  4. #4
    Membre émérite Avatar de plabrevo
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 548
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Merge 
    ...
    When Not Matched Then
      Insert <...> Values <...> Where 1=2
      ;
    End;

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 50
    Par défaut
    oui je voudrais bien mais..... j'ai pas le droit de mettre une clause where dans le INSERT d'un WHEN NOT MATCHED!!!

  6. #6
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Un update du style est-il réellement beaucoup moins performant que l'instruction merge ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    update detailFacture
    set (dateFac, dateLiv, mag) =
        (select dateFac, dateLiv, mag
         from facture
         where mag = 0
           and id = numFacture)
    where exists (select 1 
                  from facture 
                  where mag = 0 
                    and id = numFacture)

Discussions similaires

  1. [11g] MERGE WHEN NOT MATCHED en une seule instruction ?
    Par ctobini dans le forum SQL
    Réponses: 4
    Dernier message: 07/08/2014, 14h59
  2. SQL Loader + CSV (sans noms de colonne) + clause WHEN
    Par surfman dans le forum SQL*Loader
    Réponses: 5
    Dernier message: 10/09/2009, 14h15
  3. Réponses: 1
    Dernier message: 10/05/2006, 12h11
  4. Réponses: 11
    Dernier message: 08/10/2004, 15h12
  5. [Plugin]package does not match the expected package src
    Par Fladnag dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 10/03/2004, 20h17

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