Bonjour à tous,

Je dois extraire des données Oracle dans un fichier CSV.

Le fichier de sortie doit avoir informations suivantes :
ID;Activité;Canal;IP;

J'ai une table centrale avec mes ID, et 3 tables Activités / Canal / IP qui sont liées avec une clé étrangère à ma table centrale contenant l'ID
Les liaisons entre ma table ID et mes 3 tables est en 1 - n

Prenons l'exemple suivant :
  • ID 12345
  • Activités liées : A1 et A2
  • Canal lié : C1
  • IP liées : I1 et I2


Je voudrais avoir au final le résultat suivant :
ID;A1;C1;I1
ID;A2;;I2 => (Champ Canal vide car je n'ai qu'un seul canal)

Note supplémentaire : Je ne sais pas à l'avance si les ID vont avoir un plus grand nombre d'activités, de canaux ou d'IP...

Aujourd'hui je procède en 3 requêtes séparées pour obtenir
ID;A1;;
ID;A2;;
ID;;C1;;
ID;;;I1
ID;;;I2;

Mon but premier est surtout d'aviter un produit cartésien du type :
ID;A1;C1;I1;
ID;A1;C1;I2;
ID;A2;C1;I1;
...


Si quelqu'un a une solution ou une pîste...... Merci d'avance.

Autres informations :
BDD Oracle 8i (donc pas de LEFT OUTER JOIN mais des WHERE xxx (+)= yyy )