Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

cadena en storeprocedure

Estas en el tema de cadena en storeprocedure en el foro de SQL Server en Foros del Web. Hola a todos, quiero pasarle una cadena con comas a una variable de un procedimiento almacenado pero me da error. Os pongo el código. (lo ...
  #1 (permalink)  
Antiguo 12/03/2011, 08:48
 
Fecha de Ingreso: mayo-2008
Mensajes: 23
Antigüedad: 15 años, 11 meses
Puntos: 0
cadena en storeprocedure

Hola a todos, quiero pasarle una cadena con comas a una variable de un procedimiento almacenado pero me da error. Os pongo el código. (lo que quiero pasar a la variable @Cadena es 'PP','AA','XX',TT'

CREATE PROCEDURE [dbo].[sp_PRUEBA]
@IdUsuario as numeric,
@Cadena as varchar(50)

AS
BEGIN
SET NOCOUNT ON;
Declare @Sql nvarchar(1000)

SET @Sql = 'SELECT * FROM TPRUEBAS '
select @Sql = @Sql + ' WHERE TPRUEBAS.IDUSUARIO = ' + CAST(@IDUsuario AS CHAR)
select @Sql = @Sql + ' AND TPRUEBAS.TEXTO IN (' + '''' + @Cadena + ''''
+ ')'
exec sp_ExecuteSQL @sql

END

Alguien me puede decir el porque me falla?? Mil gracias...
Saludos.
  #2 (permalink)  
Antiguo 13/03/2011, 21:17
Avatar de SDEK  
Fecha de Ingreso: diciembre-2009
Ubicación: MX
Mensajes: 156
Antigüedad: 14 años, 3 meses
Puntos: 8
Respuesta: cadena en storeprocedure

Publica el error que te manda ..

Saludos,
__________________
Tecnologías de la Información
Karel Priego
| @karelpriego
  #3 (permalink)  
Antiguo 14/03/2011, 00:41
 
Fecha de Ingreso: mayo-2008
Mensajes: 23
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: cadena en storeprocedure

Gracias a todos ya lo he solucionado.. para quien tenga el mismo problema aqui le dejo como lo hice..
Declare @Variable varchar(10)
@Variable = char(39) + REPLACE(@Cadena ,',',char(39)+','+CHAR(39)) + char(39)
Saludos

Etiquetas: cadenas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:46.