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

Langage SQL Discussion :

[Oracle]commande MERGE sur une seule table


Sujet :

Langage SQL

  1. #1
    Membre régulier Avatar de DoRiane
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 127
    Points : 110
    Points
    110
    Par défaut [Oracle]commande MERGE sur une seule table
    Bonjour,
    j'aimerai savoir s'il est possible d'utiliser la commande MERGE avec une seule Table. Tous les exemple que j'ai trouvé mette en jeu 2 tables et les mot clés using et on sont obligatoire.

    voici ce que j'ai écrit, mais ca na marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    merge into DFIL c
      using (select DFIL_UTIL_ID from DFIL where DFIL_UTIL_ID = 100) s
      on (s.DFIL_UTIL_ID = c.DFIL_UTIL_ID)
      when matched then
        update set DFIL_ELAB_CODE = '0',DFIL_ERES_CODE = '0',DFIL_EREG_CODE = '0',
          DFIL_EZON_CODE = '0',DFIL_ESCO_CODE = '0'
        where DFIL_UTIL_ID = 100
      when not matched then
        insert (DFIL_UTIL_ID,DFIL_ELAB_CODE,DFIL_ERES_CODE,DFIL_EREG_CODE,DFIL_EZON_CODE,DFIL_ESCO_CODE)
        values (100,'0','0','0','0','0');
    j'ai déjà posé la question sur le forum ORACLE mais visiblement, personne n'est inspiré par ma question.
    Merci d'avance
    Bonne journée

  2. #2
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    As-tu essayé en remplaçant tes constantes par un select ... from dual ?
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  3. #3
    Membre régulier Avatar de DoRiane
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 127
    Points : 110
    Points
    110
    Par défaut
    Ca marche !!!!!
    je ne sais pas si c'est exactement ce à quoi tu pensais mais voici une solution qui fonctionne parfaitement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    merge into DFIL 
      using dual
      on (DFIL_UTIL_ID = 105)
      when matched then
        update set DFIL_ELAB_CODE = '02',DFIL_ERES_CODE = '0',DFIL_EREG_CODE = '0',DFIL_EZON_CODE = '0',DFIL_ESCO_CODE = '0'
      when not matched then
        insert (DFIL_UTIL_ID,DFIL_ELAB_CODE,DFIL_ERES_CODE,DFIL_EREG_CODE,DFIL_EZON_CODE,DFIL_ESCO_CODE)
        values (105,'01','0','0','0','0');
    merci.
    Bonne journée

  4. #4
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Si ça marche tout va bien, mais je pensais plutôt à ( )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    using (select 105  as maValeur from dual)
      on (DFIL_UTIL_ID = maValeur)
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

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

Discussions similaires

  1. [MySQL 5]Peut-on interdire l'écriture sur une seule table?
    Par *.Har(d)t dans le forum Requêtes
    Réponses: 3
    Dernier message: 05/08/2009, 16h41
  2. problème requete imbriqué sur une seule table
    Par vanhouten dans le forum Langage SQL
    Réponses: 7
    Dernier message: 30/01/2009, 16h35
  3. Merge sur une seule table
    Par dingoth dans le forum Oracle
    Réponses: 2
    Dernier message: 09/01/2007, 10h09
  4. plusieurs COUNT sur une seule table avec conditions différentes
    Par dingoth dans le forum Administration
    Réponses: 9
    Dernier message: 20/12/2006, 10h13
  5. [SQL serveur] [debutant] requette sur une seule table
    Par glanumf dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/02/2006, 15h27

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