Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/09/2008, 13h17   #1
Membre régulier
 
Avatar de anas.eh
 
Inscription : février 2007
Messages : 181
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Maroc

Informations forums :
Inscription : février 2007
Messages : 181
Points : 90
Points : 90
Envoyer un message via MSN à anas.eh
Par défaut Recherche sur plusieures tables en PL/SQL

Bonjour,

J'ai un problème et je suis actuellement bloqué la dessus, j'espère que vous m'aiderez, mon problème est le suivant :

Je dois écrire en PL/SQL, une requette SQL qui fait une recherche (une sorte de moteur de recherche) sur plusieurs tables (au moins 8 => plusieurs jointures) sur des champs qui peuvent être NULL, vide, pleins ... je ne dois récupérer que la liste des id de la table mère (ROOT), voilà comment j'ai fait mais ça n'a pas marché :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
SELECT tableRoot.Id 
  FROM  table_root tableRoot,
        table_fille1 fille1,
        table_fille2 fille2,
        table_fille3 fille3,
        table_fille4 fille4,
        ...
        WHERE 
          tableRoot.champRoot1 LIKE '%i__var1%' AND
          tableRoot.champRoot2 = i__var2 AND
          tableRoot.champRoot3 = i__var3 AND 
          fille1.champfille1_1  = i__var4  AND
          fille1.champfille1_2 = i__var5  AND
          fille2.champfille2 LIKE   '%i__var6 %' AND
          fille3.champfille3 LIKE   '%i__var7 %' AND
          fille4.champfille4_1  LIKE   '%i__var8 %' AND
          fille4.champfille4_2  LIKE '%i__var9 %' AND
          ...
          -- Inner joins
          fille1.id = tableRoot.fk_id_1 AND
          fille2.id = tableRoot.fk_id_2 AND
          fille3.id = tableRoot.fk_id_3 AND
          fille4.id = tableRoot.fk_id_4
          ...;
Merci bcp,
anas.eh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/09/2008, 11h39   #2
Candidat au titre de Membre du Club
 
Inscription : septembre 2002
Messages : 9
Détails du profil
Informations forums :
Inscription : septembre 2002
Messages : 9
Points : 10
Points : 10
Tu ne peux pas mettre des variables dans un champs texte (genre ='ma_variable').
Personnellement, j'utiliserai plutôt cette clause :
Code :
1
2
3
4
5
...
WHERE
...
INSTR(fille2.champfille2, i__var6) != 0 AND
...
Limbsd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/09/2008, 14h57   #3
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 320
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
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 : 3 320
Points : 5 839
Points : 5 839
Citation:
Envoyé par anas.eh Voir le message
Bonjour,

J'ai un problème et je suis actuellement bloqué la dessus, j'espère que vous m'aiderez, mon problème est le suivant :

Je dois écrire en PL/SQL, une requette SQL qui fait une recherche (une sorte de moteur de recherche) sur plusieurs tables (au moins 8 => plusieurs jointures) sur des champs qui peuvent être NULL, vide, pleins ... je ne dois récupérer que la liste des id de la table mère (ROOT), voilà comment j'ai fait mais ça n'a pas marché :
...
Merci bcp,
Utilise Sql Dynamique (AskTom - multiple cursors)
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h15.


 
 
 
 
Partenaires

Hébergement Web