[ORACLE 10.g] Probleme de START WITH
Bonjour,
Je suis entrain de developper une application qui represente des nomclatures de pièces, donc hiérarchisées.
J'ai une requète qui ressemble à ca :
Code:
1 2 3 4
| select level, t.* from (
select id_ligne, id_pere, libelle from ma_table
)t
START WITH id_pere IS NULL CONNECT BY PRIOR id_ligne = id_pere; |
Si l'utilisateur ne filtre sur aucun critère, tout se passe bien. Il y a toujours un "id_pere" à NULL pour les niveaux 0.
Le problème arrive quand l'utilisateur filtre sur le libellé par exemple.
Code:
1 2 3 4 5
| select level, t.* from (
select id_ligne, id_pere, libelle from ma_table
where libelle like '%BRUT%'
)t
START WITH id_pere IS NULL CONNECT BY PRIOR id_ligne = id_pere; |
Le résultat obtenu peut ne comporter que "des fils". La condition START WITH n'est plus rempli. Le résultat de ma requete est vide....
J'ai bien essayé de bidouiller avec qqchose dans ce genre la :
Code:
START WITH id_pere IS NULL OR 1=1 CONNECT BY PRIOR id_ligne = id_pere;
Ca m'a pas l'air bien propre...:koi:
Auriez-vous une petite idée ?
Merci d'avance.