|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : juin 2006 Messages : 55 ![]() |
Bonjour,
J'ai une une invite qui fait appel à une lov, dans ma clause where au final j'ai un 'LIKE' dans le SQL : utilisation de 'Dans Liste' au départ. Question : je voudrais que l'utilisateur final puisse mettre % ou * en réponse d'invite pour prendre toutes les valeurs au lieu de toutes les sélectionner, quelle serait l'astuce ? Merci ! |
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() Inscription : avril 2007 Messages : 159 ![]() |
Regarde peut-être là :
http://www.developpez.net/forums/sho...d.php?t=265494 ou là : http://www.developpez.net/forums/sho...d.php?t=259409 Le bouton "recherche" est ton ami. |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : juin 2006 Messages : 55 ![]() |
merci mais mon soucis est le suivant : dans les exemples cités c'est OK car dans les 2 prompts on a de l'alphanum (A) or dans mon cas le prompt a besoin d'un numérique (N) car il s'agit d'ID sélectionnables. Or un meme prompt ne peut pas etre utilisé avec deux typages différents.
Je ne peux donc pas utiliser le % qui est du A avec mes données attendues qui sont du N. Une astuce pour résoudre mon pb ? |
|
|
00
|
|
|
#4 |
|
Membre émérite
![]() Inscription : septembre 2006 Messages : 815 ![]() |
Tu peux peut etre tenter de faire un cast pour tranformer ton objet Numérique en Alphanumérique dans le SQL de l'objet.
Si c'est un id, cela veut dire qu'il n'y aura pas de calculs dessus !! Ensuite tu pourra utiliser correspond au modèle ! |
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : juin 2006 Messages : 55 ![]() |
j'ai pensé au cast en effet mais dans ce cas je "casse" l'index positionné sur mon champ ID en base et donc je perds en performance.
Y aurait il une autre solution : utiliser l'équivalent du % mais pour du numérique ?? Merci encore de votre aide. |
|
|
00
|
|
|
#6 |
|
Invité régulier
![]() Inscription : juin 2006 Messages : 55 ![]() |
mais de toute façon le LIKE et le IN cassent déjà l'index donc ... voila, j'oublie mon soucis de perf.
Merci ! |
|
|
00
|
|
|
#7 |
|
Membre habitué
![]() Inscription : mars 2006 Messages : 111 ![]() |
Bonjour
Tu casses ton index si tu fais : WHERE TO_CHAR(table.champ) = xxx Mais si tu avais regardé dans les liens proposés, tu aurais vu cela: ( DWH_DEMANDE_ACHAT.user_creant_da = @PROMPT ('Demandeur de la DA ou % pour tous ?','A', 'Dwh Demande Achat\User Creant Da', MONO, FREE) ) OR ( DWH_DEMANDE_ACHAT.user_creant_da IN ( SELECT DA.user_creant_da FROM DWH_DEMANDE_ACHAT DA WHERE @PROMPT ('Demandeur de la DA ou % pour tous ?','A', 'Dwh Demande Achat\User Creant Da', MONO, FREE) = '%' ) ) Et ceci peut être transformé de cette façon: ( TABLE.champ_int = TO_NUMBER( @PROMPT ('Demandeur de la DA ou % pour tous ?','A', 'Table\champ_int, MONO, FREE) ) ) OR ( TABLE.champ_int IN ( SELECT TA.champ_int FROM TABLE TA WHERE @PROMPT ('Demandeur de la DA ou % pour tous ?','A', 'Table\champ_int', MONO, FREE) = '%' ) ) Dans le cas où il te fait une erreur sur le format de l'objet Table\champ_int, tu peux créer un objet qui effectue la conversion Frédéric |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com