Utilizando clausua in en Store procedure

02/06/2005 - 22:59 por Alfredo Reyna | Informe spam
Hola a todos.
Estoy implementando un SP.

en el cual utilizo la instruccion In(@p1)

mi problema es que mi parametro puede ser uno o varios
ejemplo 'EXPPT' o 'EXPT','EXPMP',''
pero al pasarle mi parametro me lo toma como otro parametro. por la "," no
se si se pueda concatenar de alguna forma y me lo tome como uno algo como
('xxx','yyy')

ahorita tuve que definir cada tipo como parámetro.
si solo es uno lo lleno con nulos..

Si me pueden orientar sobre como hacerlo mas sencillo se los agradecere.

Espero haber explicado.

Gracias de Antemano

Preguntas similare

Leer las respuestas

#1 qwalgrande
02/06/2005 - 23:30 | Informe spam
Hola.

Este tipo de situaciones no tienen una solución simple. Puedes preparar la
ejecución de una consulta, por ejemplo:

declare @sql varchar(1000)

select @sql = 'select * from mitabla where campo in (' + @p1 + ')'
exec (@sql)

Aunque tiene su riesgo, te podrían hacer una inyección de código no deseado.
Si lo tienes suficientemente controlado, puede ser una opción.

qwalgrande

"De lo que ves créete la mitad, de lo que no ves no te creas nada"
V. del V.


"Alfredo Reyna" <Alfredo escribió en el
mensaje news:
Hola a todos.
Estoy implementando un SP.

en el cual utilizo la instruccion In(@p1)

mi problema es que mi parametro puede ser uno o varios
ejemplo 'EXPPT' o 'EXPT','EXPMP',''
pero al pasarle mi parametro me lo toma como otro parametro. por la ","
no
se si se pueda concatenar de alguna forma y me lo tome como uno algo como
('xxx','yyy')

ahorita tuve que definir cada tipo como parámetro.
si solo es uno lo lleno con nulos..

Si me pueden orientar sobre como hacerlo mas sencillo se los agradecere.

Espero haber explicado.

Gracias de Antemano

Respuesta Responder a este mensaje
#2 Eleazar
03/06/2005 - 03:21 | Informe spam
Hola
igual te funciona la instruccion patindex
ejem.
Where PatIndex(@p1,Campo) > 0
te sugiero que siempre compruebes cual de todas las opciones que tengas es
mas rapida
suerte
"qwalgrande" escribió en el mensaje
news:
Hola.

Este tipo de situaciones no tienen una solución simple. Puedes preparar la
ejecución de una consulta, por ejemplo:

declare @sql varchar(1000)

select @sql = 'select * from mitabla where campo in (' + @p1 + ')'
exec (@sql)

Aunque tiene su riesgo, te podrían hacer una inyección de código no


deseado.
Si lo tienes suficientemente controlado, puede ser una opción.

qwalgrande

"De lo que ves créete la mitad, de lo que no ves no te creas nada"
V. del V.


"Alfredo Reyna" <Alfredo escribió en el
mensaje news:
> Hola a todos.
> Estoy implementando un SP.
>
> en el cual utilizo la instruccion In(@p1)
>
> mi problema es que mi parametro puede ser uno o varios
> ejemplo 'EXPPT' o 'EXPT','EXPMP',''
> pero al pasarle mi parametro me lo toma como otro parametro. por la ","
> no
> se si se pueda concatenar de alguna forma y me lo tome como uno algo


como
> ('xxx','yyy')
>
> ahorita tuve que definir cada tipo como parámetro.
> si solo es uno lo lleno con nulos..
>
> Si me pueden orientar sobre como hacerlo mas sencillo se los agradecere.
>
> Espero haber explicado.
>
> Gracias de Antemano
>


Respuesta Responder a este mensaje
#3 Maxi
03/06/2005 - 03:35 | Informe spam
Hola, hace poquito escribi una solucion para esto, la puedes consultar en mi
blog.

http://weblogs.golemproject.com/acc.../3957.aspx


Maxi - Buenos Aires - Argentina
Desarrollador 3 Estrellas

Msn_messager:
mail: Maxi.da[arroba]gmail.com

"Alfredo Reyna" <Alfredo escribió en el
mensaje news:
Hola a todos.
Estoy implementando un SP.

en el cual utilizo la instruccion In(@p1)

mi problema es que mi parametro puede ser uno o varios
ejemplo 'EXPPT' o 'EXPT','EXPMP',''
pero al pasarle mi parametro me lo toma como otro parametro. por la ","
no
se si se pueda concatenar de alguna forma y me lo tome como uno algo como
('xxx','yyy')

ahorita tuve que definir cada tipo como parámetro.
si solo es uno lo lleno con nulos..

Si me pueden orientar sobre como hacerlo mas sencillo se los agradecere.

Espero haber explicado.

Gracias de Antemano

Respuesta Responder a este mensaje
#4 Rubén Vigón
03/06/2005 - 10:47 | Informe spam
Hola Alfredo,

Échale un vistazo a mi articulito sobre el tema:

Implementación de argumentos variables mediante XML en SQL Server 2000
Cómo pasar un número de argumentos variables a los procedimientos almacenados usando XML, evitando el uso de SQL dinámico (sp_executesql)
http://www.mvp-access.com/rubenvigo...server.pdf

Un saludo!

Rubén Vigón
Microsoft MVP Visual Basic
http://vigon.mvp-access.com
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida