Bonjour !
J'ai un souci avec une requête PL/SQL. Je simplifie le problème. J'ai une requête du genre :
1 2
| select utilisateur_id, jour, demijour from t_partiel P
where P.utilisateur_id in (:liste) |
:liste est une requête comprenant aussi une bind variable. Ex :
select utilisateur_id where id = :identifiant
Au moment de l'exécution, j'ai l'erreur suivante :
1 2
|
ORA-01722: Nombre non valideORA-06512: à ligne 1 |
La requête apparait ainsi :
1 2 3
|
select utilisateur_id, jour, demijour from t_partiel P
where P.utilisateur_id in ('select utilisateur_id where id# = :identifiant') |
Le problème est que la sous-interrogation apparait entre quotes et n'est donc pas interprétée. J'ai même dû au passage supprimer la definition de :identifiant car :liste n'étant pas interprétée, :identifiant est introuvable dans la requête globale...
Pour pallier ce problème, j'ai dû remplacer :liste par une variable PHP et là, ça marche, mais au détriment de la performance, car la requête globale est exécutée de nombreuses fois...
Comment se débarasser de ces quotes sans passer par PHP ? Y a-t-il une solution SQL ?
Merci d'avance !
Fred
Partager