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 :
Merci pour votre aide.
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 ; /
Partager