Bonjour à tous,

Comme le titre indique j'ai un problème au niveau du passage de paramètre dans une procédure stockée (enfin je crois )

J'ai une table LOCATAIRES avec deux colonnes (en simplifié) no_loc (numeric), num_siren(varchar(25)).
Exemple : no_loc = 10256, num_siren = 414 456 789

Je dois faire une recherche sur cette table par le num_siren.
J'ai donc fait cette requete :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
select no_locataire, TRES.numsiren
from (select FormatLoc(L.siren)as   numsiren,L.no_locataire
	from locataires L) TRES
where TRES.numsiren like '%414%'
order by no_locataire desc
Cette requête marche parfaitement si je la teste comme cela, mais je souhaite mettre en paramètre le critère de recherche. Je crée la procédure stockée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
CREATE PROCEDURE FindLocataireBySiren
@arg_no_siren varchar
AS
select no_locataire, TRES.numsiren
from (select dbo.FormatLoc(L.siren)as numsiren,L.no_locataire
	from locataires L) TRES
where TRES.numsiren like @arg_no_siren
GO
et que je l'appelle
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
exec FindLocataireBySiren @arg_no_siren='%414%'
elle me renvoie des réponses comme :
no_loc =12365, numsiren=542047337 qui ne contient pourtant pas '414'.
Est-ce qu'il y a un problème de passage de parmètre?
J'avoue que je ne vois pas d'ou vient le problème .

Je vous remercie d'avance de votre aide.