Pasar Array por parametro a StoredProcedure

19/10/2004 - 11:36 por Oriol | Informe spam
Hola a todos,

Tengo una duda. Necesito enviar a un StoredProcedure un array con datos.
Este array solo dispone de strings, es decir, es un array bidimensional.

Es del tipo:
array
|- string
|- string
|- string
etc...

Este es un array con unas 10.000 posiciones y lo necesito pasar en un
StoredProcedure que me hace una consulta a una tabla seleccionando todos los
registros que estan dentro de este array.

La consulta seria algo asi: (simplificada pero para que se vea la idea)

Select * from tabla1 where campo IN (array)

Esto antes lo tenia con una consulta anidada como esta:

Select * from tabla1 where campo IN (select campo2 from tabla2 where
condiciones)

pero ahora no puedo hacerlo asi, y lo unico que tengo es un array en C# con
los strings y el stored para hacerlo.

Alguna idea? Se le puede pasar directamente, o hay alguna funcion para
convertir un array en un string separado por ","? Seria el string demasiado
largo para pasarlo como parametro?

Gracias y saludos a todos,
Oriol.
 

Leer las respuestas

#1 Jorge Serrano [MVP VB]
19/10/2004 - 11:57 | Informe spam
Hola oriol,

una sugerencia... podrías utilizar un XML como entrada al Store Procedure.
Dentro del SP lo recorres y vas haciendo con los datos lo que debas hacer.

Un saludo,

Jorge Serrano Pérez
Microsoft MVP VB.NET
http://www.portalvb.com/
http://weblogs.golemproject.com/jorge/



"Oriol" wrote:

Hola a todos,

Tengo una duda. Necesito enviar a un StoredProcedure un array con datos.
Este array solo dispone de strings, es decir, es un array bidimensional.

Es del tipo:
array
|- string
|- string
|- string
etc...

Este es un array con unas 10.000 posiciones y lo necesito pasar en un
StoredProcedure que me hace una consulta a una tabla seleccionando todos los
registros que estan dentro de este array.

La consulta seria algo asi: (simplificada pero para que se vea la idea)

Select * from tabla1 where campo IN (array)

Esto antes lo tenia con una consulta anidada como esta:

Select * from tabla1 where campo IN (select campo2 from tabla2 where
condiciones)

pero ahora no puedo hacerlo asi, y lo unico que tengo es un array en C# con
los strings y el stored para hacerlo.

Alguna idea? Se le puede pasar directamente, o hay alguna funcion para
convertir un array en un string separado por ","? Seria el string demasiado
largo para pasarlo como parametro?

Gracias y saludos a todos,
Oriol.



Preguntas similares