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 :

[migration] right outer join (+) vers SQL Standard


Sujet :

Oracle

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 4
    Points : 1
    Points
    1
    Par défaut [migration] right outer join (+) vers SQL Standard
    Bonjour,
    je suis en train de fair euen migration Oracle vers Postgres.
    J'ai réussi a reconstituer ma base et mes enregistrement sous PG.

    Par contre je galère sur un requête avec 2 RIGHT OUTER JOIN à la sauce Oracle, voilà la requête en question:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT i.id_interlocuteur,  s.raison_sociale, p.nom_pays, c.lib_civilite, t.lib_typ_societe_en, 
    FROM tb_interlocuteur i, tb_societe s, tb_pays p, tb_civilite c, tb_type_societe t 
    WHERE [b]p.id_pays(+) = i.id_pays[/b]
     AND s.id_societe = i.id_societe
     AND [b]c.id_civilite(+) = i.id_civilite	[/b]
     AND s.id_typ_societe = t.id_typ_societe
    Mes deux RIGHT OUTER JOIN (+) donnent ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    from
    tb_pays p right outer join [b]tb_interlocuteur i[/b] on p.id_pays = i.id_pays
    tb_civilite c right outer join [b]tb_interlocuteur i[/b] on c.id_civilite = i.id_civilite
    mais vu que j'utilise 2 fois "tb_interlocuteur i" et bah c'est la merde.

    Si une âme charitable veux bien m'accorder 2 minutes de son temps pour me sortir la requête qui va bien ca me sauverait la vie, j'ai plus de 40 requête de ce type à traduire...

    Merci d'avance

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    A partir où tu as défini tb_interlocuteur i dans la clause from AVANT de faire les 2 right outer join alors ceux-ci ne devraient pas poser problème ?

    Tu as un message d'erreur ? Cette requête ne retourne plus les mêmes données ?

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    bah moi j'ai tenté ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    FROM tb_societe s, 
    tb_pays p RIGHT OUTER JOIN tb_interlocuteur i ON p.id_pays = i.id_pays, 
    tb_civilite c RIGHT OUTER JOIN tb_interlocuteur i ON c.id_civilite = tb_interlocuteur.id_civilite,
    tb_type_societe t 
     
    WHERE ((s.id_societe = i.id_societe) AND (s.id_typ_societe = t.id_typ_societe)

    Mais vu que je declare 2 fois tb_interlocuteur et bah ca passe pas ....
    Je suis a plat là, et je trouve de réponses nul part, c'est frustrant

  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
    As-tu essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    FROM tb_interlocuteur i  LEFT OUTER JOIN tb_pays p         ON p.id_pays        = i.id_pays
                             LEFT OUTER JOIN tb_civilite c     ON c.id_civilite    = i.id_civilite
                             LEFT OUTER JOIN tb_societe s      ON s.id_societe     = i.id_societe
                             LEFT OUTER JOIN tb_type_societe t ON s.id_typ_societe = t.id_typ_societe

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    tu es sur qu'il est possible de transformer un RIGHT OUTER JOIN en un LEFT ??
    Si c possible tant mieu mais un doute quand même ...

  6. #6
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     from 
    tb_pays p right outer join (tb_civilite c right outer join tb_interlocuteur i on c.id_civilite = i.id_civilite) on p.id_pays = i.id_pays
    mais c'est quand même plus lisible en left...

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Citation Envoyé par Kahiros
    tu es sur qu'il est possible de transformer un RIGHT OUTER JOIN en un LEFT ??
    Si c possible tant mieu mais un doute quand même ...
    D'après le site de SQLPro tu peux faire sans transformation.

  8. #8
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup pour vos reponses,
    surtout à LaurentSchneider ca marche tip top

    +++ et meilleurs voeux

Discussions similaires

  1. problèmes de migration des requêtes ajout vers SQL SERVER
    Par Sucden dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 23/04/2008, 07h39
  2. Microsoft Access - Left/Right Outer Join
    Par Erakis dans le forum Langage SQL
    Réponses: 10
    Dernier message: 22/04/2008, 17h17
  3. Right Outer Join
    Par RodEpsi dans le forum Langage SQL
    Réponses: 10
    Dernier message: 15/03/2007, 18h30
  4. [debutan] migration de données Oracle vers SQL SERVER 2000
    Par Mil00se dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 17/08/2005, 17h44
  5. Migration de données Oracle vers SQL server
    Par joul's dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 16/02/2005, 15h05

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