lista de valores en procedimiento almacenado

20/02/2008 - 13:23 por C a r l o s A n t o n i o | Informe spam
Muy buen dia,

Estoy trabajando con stored procedures.

¿Como puedo convertir esto:
select * from mi_tabla where mi_valor in ('001', '002', '003')
en esto:
select * from mi_tabla where mi_valor in (@mi_array_param) ?


Agradezco mucho la ayuda,

C a r l o s A n t o n i o

Preguntas similare

Leer las respuestas

#1 Rubén Vigón
20/02/2008 - 14:01 | Informe spam
Hola Carlos,

Yo suelo resolver ese tipo de situaciones con «OpenXML»; échale un vistazo a este artículo:

Cómo escribir procedimientos almacenados que reciban un número variable de argumentos
http://vigon.mvps.org/pdf/argumento...server.pdf

Un saludo!

Rubén Vigón
Microsoft MVP Visual Basic
http://vigon.mvps.org
Respuesta Responder a este mensaje
#2 C a r l o s A n t o n i o
20/02/2008 - 14:07 | Informe spam
Tienes razon Pablo. Acabo de confirmar que no trabaja con arrays. Ya me di
por vencido. Afortunadamente acabo de encontrar este articulo.
http://www.sommarskog.se/arrays-in-sql-2005.html
y este...
http://www.sommarskog.se/arrays-in-sql-2000.html

Voy a probarlo a ver que tal funciona

Gracias por la ayuda.

Carlos Antonio



"Pablo Fabian Savino" wrote in message
news:000801c873c5$5fad65d0$

He tenido la misma pregunta, y hasta donde yo se y aberigue sql server
2000 no trabaja con arrays

De: C a r l o s A n t o n i o [mailto:carlvazpr?arroba¿yahoo.com]
Expuesto a las: miércoles, 20 de febrero de 2008 9:23
Expuesto en: microsoft.public.es.sqlserver
Conversación: lista de valores en procedimiento almacenado
Asunto: lista de valores en procedimiento almacenado

Muy buen dia,

Estoy trabajando con stored procedures.

¿Como puedo convertir esto:
select * from mi_tabla where mi_valor in ('001', '002',
'003')
en esto:
select * from mi_tabla where mi_valor in (@mi_array_param) ?


Agradezco mucho la ayuda,

C a r l o s A n t o n i o



Respuesta Responder a este mensaje
#3 jcac
20/02/2008 - 14:09 | Informe spam
Hola Carlos Antonio

Yo me hice una función donde que transforma los datos a una tabla y luego
estos ya los puedo consultar como indicas

Create Function ListaCaracteres_a_Tabla -- Select * From
ListaCaracteres_a_Tabla (' 002, 003, 004, 005,006', ',')
(@Lista Varchar(8000), @Separador nchar(1) = ',')
Returns @Tabla TABLE (Campo nvarchar(2000))
As
Begin
Declare @Ancho int, @PuntoCorte Int
Set @Ancho = Len(@Lista)
While @Ancho <> 0
Begin
Select @PuntoCorte = Charindex(@Separador, @Lista)
If @PuntoCorte > 0
Begin
Insert Into @Tabla(Campo) Values (dbo.Alltrim(Substring(@Lista, 1,
@PuntoCorte - 1)))
Select @Lista = dbo.Alltrim(Right(@Lista, @Ancho - @PuntoCorte)), @Ancho
= Len(@Lista)
/*Set @Lista = Right(@Lista, @Ancho - @PuntoCorte)
Set @Ancho = Len(@Lista)*/
End
Else
Begin
Insert Into @Tabla(Campo) Values (@Lista)
Set @Ancho = 0
End
End
Return
End

Saludos

Juan Carlos


"C a r l o s A n t o n i o" <carlvazpr?arroba¿yahoo.com> escribió en el
mensaje news:%
Muy buen dia,

Estoy trabajando con stored procedures.

¿Como puedo convertir esto:
select * from mi_tabla where mi_valor in ('001', '002', '003')
en esto:
select * from mi_tabla where mi_valor in (@mi_array_param) ?


Agradezco mucho la ayuda,

C a r l o s A n t o n i o



Respuesta Responder a este mensaje
#4 Pablo Fabian Savino
20/02/2008 - 14:34 | Informe spam
He tenido la misma pregunta, y hasta donde yo se y aberigue sql server
2000 no trabaja con arrays

De: C a r l o s A n t o n i o [mailto:carlvazpr?arroba¿yahoo.com]
Expuesto a las: miércoles, 20 de febrero de 2008 9:23
Expuesto en: microsoft.public.es.sqlserver
Conversación: lista de valores en procedimiento almacenado
Asunto: lista de valores en procedimiento almacenado

Muy buen dia,

Estoy trabajando con stored procedures.

¿Como puedo convertir esto:
select * from mi_tabla where mi_valor in ('001', '002',
'003')
en esto:
select * from mi_tabla where mi_valor in (@mi_array_param) ?


Agradezco mucho la ayuda,

C a r l o s A n t o n i o
Respuesta Responder a este mensaje
#5 Maxi Accotto
26/02/2008 - 02:42 | Informe spam
Hola, si es un a sola columna a recibir te recomiendo este procedimiento,

http://www.sqlteam.com/article/pass...-procedure




Microsoft MVP SQLServer
www.sqltotalconsulting.com
-

"C a r l o s A n t o n i o" <carlvazpr?arroba¿yahoo.com> escribió en el
mensaje de noticias:#
Muy buen dia,

Estoy trabajando con stored procedures.

¿Como puedo convertir esto:
select * from mi_tabla where mi_valor in ('001', '002', '003')
en esto:
select * from mi_tabla where mi_valor in (@mi_array_param) ?


Agradezco mucho la ayuda,

C a r l o s A n t o n i o



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida