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 :

[10g] Full outer join, column ambiguously defined


Sujet :

SQL Oracle

  1. #1
    Membre expérimenté
    Avatar de Julien59
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    1 142
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 142
    Points : 1 458
    Points
    1 458
    Par défaut [10g] Full outer join, column ambiguously defined
    Bonjour à tous,
    Je travaille sous BO XI 3.1, et Oracle 11g.
    Je dois utiliser une full outer join dans mon cas et j'ai une erreur : "column ambiguously defined"

    Voici le code qui est généré :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT 
        P.CDP_NUM_PALETTE
    FROM
        CNMKIAEK.XN_COLIS_VW C
            FULL OUTER JOIN CNMKIAEK.XN_PALETTES_VW P ON 
           (C.CDT_NUM_PALETTE=P.CDP_NUM_PALETTE and C.CDT_NUM_CHARGEMENT=P.CDP_NUM_CHARGEMENT)
    J'ai fait quelques recherches et le code suivant fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT 
        P.*
    FROM
        CNMKIAEK.XN_COLIS_VW C
            FULL OUTER JOIN CNMKIAEK.XN_PALETTES_VW P ON 
           (C.CDT_NUM_PALETTE=P.CDP_NUM_PALETTE and C.CDT_NUM_CHARGEMENT=P.CDP_NUM_CHARGEMENT)
    Il s'agit exactement du même code sauf que dans le select je mets * et non le nom d'un champ de la table.
    3e cas qui fonctionne également, je supprime le and de ma jointure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT 
        P.CDP_NUM_PALETTE
    FROM
        CNMKIAEK.XN_COLIS_VW C
            FULL OUTER JOIN CNMKIAEK.XN_PALETTES_VW P ON 
           (C.CDT_NUM_PALETTE=P.CDP_NUM_PALETTE)
    4e cas qui ne fonctionne pas, je supprime le and, mais j'enlève la 1ère partie de la jointure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT 
        P.CDP_NUM_PALETTE
    FROM
        CNMKIAEK.XN_COLIS_VW C
            FULL OUTER JOIN CNMKIAEK.XN_PALETTES_VW P ON 
           (C.CDT_NUM_CHARGEMENT=P.CDP_NUM_CHARGEMENT)
    Pour info, il s'agit de vues. Peut être faut il aller dans ce sens, mais je ne trouve pas.
    Tout est correctement préfixé dans le SQL générant les vues.
    Quelqu'un a une idée ?

  2. #2
    Expert éminent sénior 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
    Points : 11 252
    Points
    11 252
    Par défaut
    Ca à l’air d’un bug mais sans un exemple reproductible c’est difficile à décider. Si c’est le cas c’est du à la transformation de la requête fait par l’optimiseur. Pour avoir le cœur net essayez d’ajouter sur la requête qui ne fonctionne pas le hint sql NO_QUERY_TRANSFORMATION ou NO_MERGE. Cela devrait empêcher la réécriture de la requête par l’optimiseur.

    Vous devez aussi fournir la version exacte d'Oracle, par exemple 11.2.0.1.0

  3. #3
    Membre expérimenté
    Avatar de Julien59
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    1 142
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 142
    Points : 1 458
    Points
    1 458
    Par défaut
    Pour la version : Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64bi

    Pour le test des hint, il n'est pas concluant. Le problème est toujours présent.
    Je suis de votre avis, ca ressemble à un bug...

  4. #4
    Expert éminent sénior 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
    Points : 11 252
    Points
    11 252
    Par défaut
    Tracez l’événement 10053 et dans le fichier trace ainsi générés, regardez à quel moment l’erreur arrive.

Discussions similaires

  1. L'équivalent de FULL OUTER JOIN sous ACCESS
    Par Le Pharaon dans le forum Langage SQL
    Réponses: 2
    Dernier message: 24/03/2013, 13h36
  2. Erreur FULL OUTER JOIN
    Par SwiTz dans le forum Requêtes
    Réponses: 14
    Dernier message: 02/04/2009, 14h33
  3. [Oracle 9] Probleme. FULL OUTER JOIN
    Par West01 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 17/10/2006, 08h46
  4. [ORACLE 9i] Equivalent du Full Outer Join
    Par Worldofdada dans le forum Oracle
    Réponses: 10
    Dernier message: 02/11/2005, 15h56
  5. Remplacer FULL OUTER JOIN
    Par funrighd dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/07/2004, 11h54

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