Bonjour,
j'ai une fonction qui affiche la liste des employés grace à un curseur. Dans ma fonction j'ai un paramètre : "critere" qui sert dans la requêtre SQL pour pouvoir trier les résultats en fonction de ce critère. Mon problème est que critère est un varchar2 et à pour valeur par défaut : 'nom_emp' et lorsque je crée mon curseur, la requête marche mal puisque dans mon ORDER BY est fait comme ceci :
ORDER BY 'nom_emp' alors que je voudrais que ça soit : ORDER BY nom_emp
sans les ' '.
Le problème est que je ne peux pas mettre les ' ' dans le paramètre de ma fonction donc je souhaiterai convertir la chaine 'nom_emp' en nom_emp pour que le ORDER BY marche.
Dans la page, je fais une liste déroulante avec le critère de tri choisi et là encore j'utilise mes paramètres 'nom_emp', 'prenom_emp' ... qui comportent eux aussi des apostrophes que je souhaite là aussi enlever pour que le "ORDER BY" fonctionne.

Voici une partie du code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
CREATE OR REPLACE PROCEDURE listeEmp(critere varchar2 default 'nom_emp') IS
cursor CEmp is
select num_emp, nom_emp, prenom_emp, date_nais_emp, adresse_emp,
		ville_emp, cp_emp, tel_emp, sexe_emp, date_embauche_emp
from EMPLOYE ORDER BY critere ;
BEGIN
	HTP.htmlOpen ; HTP.bodyOpen ;
        ...
	HTP.formOpen('listeEmp') ;
		HTP.tableOpen(cattributes=>'border="1", bordercolor="BLUE", align="center"') ;
        ...
			HTP.tableRowOpen ;
				HTP.tableData('Criteres de tri :') ;
				HTP.tableData(cvalue=>HTF.formSelectOpen('critere') || HTF.formSelectOption('nom_emp')
							  || HTF.formSelectOption('prenom_emp') || HTF.formSelectOption('date_nais_emp')
							  || HTF.formSelectOption('ville_emp')  || HTF.formSelectOption('cp_emp')
							  || HTF.formSelectOption('sexe_emp')   || HTF.formSelectOption('cp_emp')
							  || htf.formSelectClose) ;
				HTP.tableData(cvalue=>HTF.formSubmit(cvalue=>'OK'), calign=>'right') ;
				HTP.tableData(critere) ;		  
 
                               ...
 
			HTP.tableRowClose ;
		HTP.tableClose ;
	HTP.formClose ;
	HTP.bodyClose ;	HTP.htmlClose ;
END listeEmp ;
/
Merci pour votre aide.