Salut,

J'ai quelque chose de simple, une fonction qui a deux arguments en paramétres:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
(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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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?