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 :

pb de full outer join + db_link


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 60
    Par défaut pb de full outer join + db_link
    bonjour,

    Je suis sous 9.2.0.6, j'ai 2 schémas : user1 propriétaire des tables et user2 qui accède aux tables de user1 via un Database link : DBLNK_CAL, j'ai 3 tables sous user1.

    Cette requete ci sous user1 est OK :
    select count(*) from
    (select id_poste
    from POSTE
    full outer join PAPE
    on POSTE.pape_id = PAPE.id_pape
    full outer join CENTRE
    on PAPE.centre_id = CENTRE.id_centre)

    Mais l'équivalente sous user2 est KO :
    select count(*) from
    (select id_poste
    from POSTE@DBLNK_CAL POS
    full outer join PAPE@DBLNK_CAL PAP
    on POS.pape_id = PAP.id_pape
    full outer join CENTRE@DBLNK_CAL CEN
    on PAP.centre_id = CEN.id_centre)
    avec comme msg d'erreur :
    ORA-00904: "A2"."QCSJ_C004001" : identificateur non valide
    ORA-02063: précédant line de DBLNK_CAL

    par contre sous user2 les 2 requetes suivantes sont OK :

    select id_poste
    from POSTE@DBLNK_CAL POS
    full outer join PAPE@DBLNK_CAL PAP
    on POS.pape_id = PAP.id_pape
    full outer join CENTRE@DBLNK_CAL CEN
    on PAP.centre_id = CEN.id_centre

    et

    select count(*) from
    (select id_poste
    from POSTE@DBLNK_CAL POS
    full outer join PAPE@DBLNK_CAL PAP
    on POS.pape_id = PAP.id_pape)
    -- full outer join CENTRE@DBLNK_CAL CEN
    -- on PAP.centre_id = CEN.id_centre)


    Bref, à partir de 3 full outer join avec des tables en database link pour une requete qui appelel un select çà déconne !!
    Pourquoi ? une idée ?
    je n'ai rien trouvé sur le net ...
    et je n'ai pas accès à metalink.

    Et je n'ai pas possibilité de changer mon code (en fait au lieu du 1er select j'ai un insert pour inserer dans une table de user2 des valuers de tables de user1, meme erreur)

    Merci.

  2. #2
    Rédacteur
    Avatar de Bruno2r
    Homme Profil pro
    Exploitation des données
    Inscrit en
    Décembre 2006
    Messages
    2 566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Exploitation des données
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 566
    Par défaut pb de db link
    Bonsoir,
    Je ne garantis rien quand à la pertinence de mon idée ...
    Le message ORA-00904: "A2"."QCSJ_C004001" : identificateur non valide m'amène à la remarque suivante :
    Est ce que le problème persiste si l'on fait précéder le nom de la table par son OWNER ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT ...
    FROM OWNERNAME.TABLE@DBLINKNAME
    Par ailleur les jointures me semble étranges
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select id_poste
    from POSTE@DBLNK_CAL POS
    full outer join PAPE@DBLNK_CAL PAP
    on POS.pape_id = PAP.id_pape 
    full outer join CENTRE@DBLNK_CAL CEN
    on PAP.centre_id = CEN.id_centre)
    ne serait il pas possible de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT id_poste
    FROM OWNERNAME.CENTRE@DBLNK_CAL CEN
    , OWNERNAME.PAPE@DBLNK_CAL PAP, OWNERNAME.POSTE@DBLNK_CAL POS
    WHERE POS.pape_id = PAP.id_pape(+)
    AND PAP.centre_id = CEN.id_centre(+)
    Précisez la VERSION !
    Un message vous a aidé ? Votez en cliquant sur Pensez au bouton
    Tutoriels BO et FAQ BO
    "A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"

  3. #3
    Membre émérite Avatar de Yorglaa
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    845
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 845
    Par défaut
    au vu du message d'erreur, je te suggère de vérifier le DBLink.

    s'agit-il d'un DBLink avec identificateur (login) statique ou ou le DBLink reprend-t'il le username/password du user en cours ?

    si c'est le cas, ton user 2 ne semble pas avoir les droits nécéssaires sur la base cible...

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, 12h36
  2. Erreur FULL OUTER JOIN
    Par SwiTz dans le forum Requêtes
    Réponses: 14
    Dernier message: 02/04/2009, 13h33
  3. [Oracle 9] Probleme. FULL OUTER JOIN
    Par West01 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 17/10/2006, 07h46
  4. [ORACLE 9i] Equivalent du Full Outer Join
    Par Worldofdada dans le forum Oracle
    Réponses: 10
    Dernier message: 02/11/2005, 14h56
  5. Remplacer FULL OUTER JOIN
    Par funrighd dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/07/2004, 10h54

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