[SP] Comment fournir la liste d'un "IN" en paramèt
Bonjour.
Je viens de constater qu'une procédure stockée que je croyais opérationnelle ne l'est probablement pas tant que ça...
Voici le début de ma procédure :
Code:
1 2 3 4 5 6 7 8 9 10
| DECLARE
@ListePrIdParent varchar(200)
set @ListePrIdParent='304,1451'
SELECT count(*)
FROM T_LIEN_NS
WHERE
1) LNS_NS_PR_ID_PARENT_FK IN (@ListePrIdParent)
2)-- LNS_NS_PR_ID_PARENT_FK IN (304, 1451) |
Les lignes 1) et 2) sont des équivalentes que je passe en commentaire alternativement pour tester.
La vrai procedure stockée ne comporte pas la ligne 2), mais la ligne 1). Pourtant, avec les valeurs que j'ai fourni ici, la procédure ne fonctionne qu'avec la ligne 2) et pas avec la ligne 1).
Et voilà ce qu'il me marque :
Citation:
Erreur de conversion du type de données varchar en numeric.
Ce que je cherche à faire, c'est à lui passer sous forme d'une chaine, la liste à placer après le "IN"... mais apparemment, je n'utilise pas la bonne méthode !
Comment puis-je faire ? 8O Quelqu'un a une idée ? :oops:
Qu'en est-il si la liste contient des varchar ?
Bonjour,
Le passage en paramètre de données d'une liste du type int est plusieurs fois expliqué sur le forum.
Qu'en est-il quand il s'agit de passer une liste du type varchar :
Code:
1 2 3 4 5 6 7 8
|
Declare @list_char varchar;
Set @list_char = "'toto','tata'"; --??
select *
from matable
where
macolonne IN (@list_char) |
Merci