SQL - Problema: WHERE id IN(@parametro)

 
Vista:

Problema: WHERE id IN(@parametro)

Publicado por carlos acero (2 intervenciones) el 20/10/2003 12:43:35
Mi problema es el siguiente. Tengo un procedimiento alamacenado en el que recibe un parámetro que luego se utiliza como "..WHERE id IN(@parametro)" ese parámetro recibe una cadena de id separadas por comas. El problema es que el parámetro está declarado como VARCHAR(100) y cuando lo recibe la claúsula WHERE el efecto es el siguiente:

WHERE id IN( '13,14,15' )

Y da un error de no poder convertir varchar a integer. Sé que de la siguiente forma no da ningún error:

WHERE id IN(13,14,15)

o esta otra

WHERE id IN('13','14','15')

Mi problema es saber cómo puedo hacer para que la cadena que le paso me la convierta a un array o a un tipo de dato que no de me el error de intentar convertir varchar a integer. Es decir qué tipo de dato tengo que asignarle al parámetro para que me lo interprete correctamente.
Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema: WHERE id IN(@parametro)

Publicado por Isaías Islas (5072 intervenciones) el 21/10/2003 18:30:58
Lo que usted necesita es hacer una ejecucion con el store sp_executesql que fue creado para estos casos, le pongo un ejemplo

DECLARE @SQLString NVARCHAR(500), @MyArray VARCHAR(30)
SET @MyArray = '20,00'
SET @SQLString = N'SELECT * FROM MyTabla WHERE MyColumna IN('+@MyArray+')'
EXEC sp_executesql @SQLString
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar