Requête paramétrée dans une fonction
Salut,
J'ai quelque chose de simple, une fonction qui a deux arguments en paramétres:
Code:
(codecat IN bdc_TRACENAVIGATION.CODECATEGORIE%Type, codelangue IN bdc_CATEGORIES_LANGUE.CODELANGUE%Type)
Dans cette fonction j'ai une requête encore plus simple qui utilise les paramétres:
Code:
1 2 3 4 5 6
| select CL.NOM_CATEGORIE
from bdc_CATEGORIES_LANGUE CL
inner join bdc_CATEGORIES_TREE CT on CT.CODECATEGORIE = CL.CODECATEGORIE
where CL.CODELANGUE = codelangue
and CT.LFT <= (select LFT from bdc_CATEGORIES_TREE where CODECATEGORIE = codecat)
and CT.RGT >= (select RGT from bdc_CATEGORIES_TREE where CODECATEGORIE = codecat); |
Le problème, c'est comme s' il ne prennait pas en compte la clause WHERE, il me selectionne les noms dans toutes les langues. Pourtant la valeur de codelangue est bonne.
Par contre lorsque je mets directement la valeur, ca fonctionne:
Code:
where CL.CODELANGUE = 1
J'ai testé la valeur de codelangue dans la fonction, elle détient bien la valeur que je passe en paramétre.
J'ai également changé le type de codelangue mais sans succés.
Quelqu'un à une idée?