Plus je lis ton post, moins je comprends ce que tu souhaites...
Reprenons :
Tu veux appeler, via du code JAVA, un procédure stockée qui va te sortir le résultat d'une requête dont le nombre de filtres (clause WHERE ou AND) n'est suivant le nombre de mots à rechercher, ces mots étant passés en paramètre dans la procédure stockée
J'ai bon ?
Si j'ai bien compris ton soucis (à confirmer), voici ce que je te propose (je connais pas JAVA mais bon, c'est du classique) :
1- TU crées une seule procédure stockée avec 1 seul paramètre : une cahine de caractères qui contient la liste des mots à rechercher
1 2 3 4 5
|
CREATE PROCEDURE sp_ListeRecherche (@pLISTEMOT nvarchar(4000))
BEGIN
...
END |
2- Tu décides par toi même que les mots, dans la chaine de caractère passée en paramétre de la proc stockée, seront séparés (par exemple) par des virgules.
Donc ton code JAVA va appeler la proc comme cela :
exec sp_listeRecherche 'mot1,mot2, mot3'
3- Dans le corps de ta procédure stockée, tu fais une boucle sur le paramètre @sp_ListeRecherche et à chaque fois que tu trouves une virgule (utilise CHARINDEX), tu ajoutes un nouveau filtre à une chaine SQL dynamique.
4- Puis toujours dans la proc, tu exécutes la chaine dynqmiquement créée et tu récupères son résultat dans ton code JAVA
Jette un coup d'oeil attentif à ce post :
http://www.developpez.net/forums/sho...d.php?t=186225
et notamment le code SQL que j'ai mis dans le fichier attaché.
Je suis sur que ca va résoudre ton soucis
Partager