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 :

commande merge oracle


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 68
    Par défaut commande merge oracle
    Bonjour,

    j'ai un problème avec la commande merge :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    desc t_environnement;
     
    --- MISE A JOUR DE LA TABLE ENVIRONNEMENT ---
    merge into t_environnement X
    using ( select ENVIRONNEMENT,ID_DOMAINE from t_environnement_tmp ) T
    on ( X.ENVIRONNEMENT=T.ENVIRONNEMENT and X.ID_DOMAINE=T.ID_DOMAINE )
    when matched then update
    set X.ID_ENVIRONNEMENT=T.ID_ENVIRONNEMENT , X.ENVIRONNEMENT=T.ENVIRONNEMENT , X.ID_DOMAINE=T.ID_DOMAINE
    when not matched then
    insert ( X.ID_ENVIRONNEMENT,X.ENVIRONNEMENT,X.ID_DOMAINE,X.ID_ENVIRONNEMENT_ORA ) values ( T.ID_ENVIRONNEMENT,T.ENVIRONNEMENT,T.ID_DOMAINE,sequence_environne
    ment.NextVal);
    et voici le résultat :
    Name Null? Type
    ----------------------------------------- -------- ----------------------------
    ID_ENVIRONNEMENT_ORA NOT NULL NUMBER(6)
    ID_DOMAINE NUMBER(6)
    ID_ENVIRONNEMENT NOT NULL NUMBER(2)
    ENVIRONNEMENT VARCHAR2(16)

    insert ( X.ID_ENVIRONNEMENT,X.ENVIRONNEMENT,X.ID_DOMAINE,X.ID_ENVIRONNEMENT_ORA ) values ( T.ID_ENVIRONNEMENT,T.ENVIRONNEMENT,T.ID_DOMAINE,sequence_environnement.NextVal)
    *
    ERROR at line 7:
    ORA-00904: "T"."ID_ENVIRONNEMENT": invalid identifier

    j'avoue que je ne comprend pas le problème

  2. #2
    Membre émérite
    Inscrit en
    Décembre 2003
    Messages
    493
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 493
    Par défaut
    effectivement ID_ENVIRONNEMENT n'est pas repris dans ton select

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 68
    Par défaut
    bonjour,

    j'ai corrigé mais maintenant j'ai cette erreur :
    [1439]pbytela@bt1ws0ba[/u01/app/e_sda/exploit/reference/sql]sqlplus -silent TOM/fraise @merge.sql
    Name Null? Type
    ----------------------------------------- -------- ----------------------------
    ID_ENVIRONNEMENT_ORA NOT NULL NUMBER(6)
    ID_DOMAINE NUMBER(6)
    ID_ENVIRONNEMENT NOT NULL NUMBER(2)
    ENVIRONNEMENT VARCHAR2(16)

    on ( X.ID_DOMAINE=T.ID_DOMAINE and X.ENVIRONNEMENT=T.ENVIRONNEMENT )
    *
    ERROR at line 3:
    ORA-00904: "X"."ENVIRONNEMENT": invalid identifier

  4. #4
    Membre émérite
    Inscrit en
    Décembre 2003
    Messages
    493
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 493
    Par défaut
    envoie nous un DESC de tes tables

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 68
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    53 rows selected.
     
    desc T_ENVIRONNEMENT_TMP;
     Name                                      Null?    Type
     ----------------------------------------- -------- ----------------------------
     ID_ENVIRONNEMENT                          NOT NULL NUMBER(2)
     ENVIRONNEMENT                                      VARCHAR2(16)
     ID_DOMAINE                                         NUMBER(1)
     
    desc T_ENVIRONNEMENT;
     Name                                      Null?    Type
     ----------------------------------------- -------- ----------------------------
     ID_ENVIRONNEMENT_ORA                      NOT NULL NUMBER(6)
     ID_DOMAINE                                         NUMBER(6)
     ID_ENVIRONNEMENT                          NOT NULL NUMBER(2)
     ENVIRONNEMENT                                      VARCHAR2(16)

  6. #6
    Membre émérite
    Inscrit en
    Décembre 2003
    Messages
    493
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 493
    Par défaut
    apparemment ce n'est pas le même ordre sql que celui montré précédemment : clause on inversée

    --> lance ta commande en sql*plus (pas de script pour pouvoir voir le sql véritablement lancé et montre nous le résultat)

    MERCI

Discussions similaires

  1. Commande MERGE sous ORACLE 9.2.0.6
    Par Cofondinde dans le forum Oracle
    Réponses: 5
    Dernier message: 19/07/2007, 19h42
  2. la commande merge
    Par daliok dans le forum Oracle
    Réponses: 1
    Dernier message: 05/01/2007, 18h43
  3. MERGE ORACLE 9i
    Par goozy dans le forum Oracle
    Réponses: 1
    Dernier message: 24/11/2006, 16h50
  4. [10g] Commande MERGE
    Par DoRiane dans le forum Oracle
    Réponses: 3
    Dernier message: 04/08/2006, 17h57
  5. [Oracle]commande MERGE sur une seule table
    Par DoRiane dans le forum Langage SQL
    Réponses: 3
    Dernier message: 04/08/2006, 17h13

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