Problème clause "ORDER BY" dans bloc PL/SQL
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:
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.