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

Ejecutar Stored Procedure con variable que trae varios parametros

Estas en el tema de Ejecutar Stored Procedure con variable que trae varios parametros en el foro de SQL Server en Foros del Web. hola amigos, disculpen si es una pregunta muy tonta pero la verdad es que no estoy muy familiarizada con los stored procedures y resulta que ...
  #1 (permalink)  
Antiguo 08/04/2015, 15:03
Avatar de rachpts  
Fecha de Ingreso: febrero-2012
Mensajes: 117
Antigüedad: 12 años, 1 mes
Puntos: 0
Pregunta Ejecutar Stored Procedure con variable que trae varios parametros

hola amigos, disculpen si es una pregunta muy tonta pero la verdad es que no estoy muy familiarizada con los stored procedures y resulta que estoy pasando una variable en php que trae varios valores y al ejecutarlo directamente en sql me lo trae vacío

Código SQL:
Ver original
  1. EXEC [RIA].[dbo].[selectReport] '146_250_38_109',24,'','team1, team 2',0
  2. ------------------------------------------------------------------>  aqui esta el problema

si lo ejecuto con un solo parametro

Código SQL:
Ver original
  1. EXEC [RIA].[dbo].[selectReport] '146_250_38_109',24,'','team1',0
  2. ------------------------------------------------------------------>  así si lo hace

por favor ayuda!!
  #2 (permalink)  
Antiguo 08/04/2015, 15:07
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Ejecutar Stored Procedure con variable que trae varios parametros

si en tu codigo del procedure tienes que haga que un select * from tabla where id=@variable entonces no regresa nada porque variable trae 2 o mas valores, te podria ayudar pero ocupo que muestres el codigo del procedure para poder analizar la solucion :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 08/04/2015, 15:19
Avatar de rachpts  
Fecha de Ingreso: febrero-2012
Mensajes: 117
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Ejecutar Stored Procedure con variable que trae varios parametros

ah muchas gracias por tu ayuda lo coloco,
Código SQL:
Ver original
  1. IF @TYPE = 24
  2.         BEGIN
  3.        
  4.                 INSERT #idleppt SELECT [team],[YEAR],[week],0 FROM [RIA].[dbo].[ReportSapAll] WHERE [USER]=@USER GROUP BY [team],[YEAR],[week]
  5.                
  6.                 IF @GROUP = '' AND @team = ''
  7.                     BEGIN      
  8.                         INSERT #idlepptA    SELECT [team],[YEAR],[week],SUM([hours])AS[hours] FROM [RIA].[dbo].[ReportSapAll] WHERE [USER]=@USER AND [statusSAP]IN('Idle') GROUP BY [team],[YEAR],[week] ORDER BY [week]
  9.                         SELECT * FROM #idlepptA
  10.                         END
  11.                 IF @GROUP = '' AND @team <> ''
  12.                     BEGIN
  13.                         INSERT #idlepptB   SELECT [team],[YEAR],[week],SUM([hours])AS[hours] FROM [RIA].[dbo].[ReportSapAll] WHERE [team]=@team AND [USER]=@USER AND [statusSAP]IN('Idle') GROUP BY [team],[YEAR],[week] ORDER BY [week]
  14.                        
  15.                         SELECT * FROM #idlepptB
  16.                         END
  17.                 IF @GROUP <> '' AND @team = ''
  18.                     BEGIN
  19.                         INSERT #idlepptC    SELECT [team],[YEAR],[week],SUM([hours])AS[hours] FROM [RIA].[dbo].[ReportSapAll] WHERE [team] IN (SELECT c.[description] FROM [RIA].[dbo].[group_details] a,[RIA].[dbo].[GROUP] b,[RIA].[dbo].[cat_team] c WHERE a.[description]=@GROUP AND a.[id_group]=b.[id_group] AND b.[id_team]=c.[id_team]) AND [USER]=@USER AND [statusSAP]IN('Idle') GROUP BY [team],[YEAR],[week] ORDER BY [week]
  20.                         SELECT * FROM #idlepptC
  21.                         END
  22.    
  23.         END
  #4 (permalink)  
Antiguo 08/04/2015, 15:28
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Ejecutar Stored Procedure con variable que trae varios parametros

Código SQL:
Ver original
  1. CREATE FUNCTION [dbo].[SplitApplication](@applicationid VARCHAR(2000))
  2.  
  3. RETURNS @RtnValue TABLE
  4. (
  5. Id INT IDENTITY(1,1),
  6. DATA nvarchar(100)
  7. )
  8. AS
  9. BEGIN
  10. DECLARE @Cnt INT, @SplitOn nvarchar(5)
  11. SET @SplitOn = ','
  12. SET @Cnt = 1
  13.  
  14. While (Charindex(@SplitOn,@applicationid)>0)
  15. BEGIN
  16. INSERT INTO @RtnValue (DATA)
  17. SELECT
  18. DATA = ltrim(rtrim(SUBSTRING(@applicationid,1,Charindex(@SplitOn,@applicationid)-1)))
  19.  
  20. SET @applicationid = SUBSTRING(@applicationid,Charindex(@SplitOn,@applicationid)+1,len(@applicationid))
  21. SET @Cnt = @Cnt + 1
  22. END
  23.  
  24. INSERT INTO @RtnValue (DATA)
  25. SELECT DATA = ltrim(rtrim(@applicationid))
  26.  
  27. RETURN
  28. END
  29.  
  30. GO
  31.  
  32.  
  33. how TO USE :
  34.  
  35. SELECT * FROM TABLE WHERE DATA IN (
  36.  
  37. SELECT * FROM SplitApplication('1,1,1,1')
  38. )

En tu ejemplo se podria usar asi:


Código SQL:
Ver original
  1. INSERT #idleppt SELECT [team],[YEAR],[week],0 FROM [RIA].[dbo].[ReportSapAll] WHERE [USER] IN (SELECT * FROM SplitApplication(@USER)) GROUP BY [team],[YEAR],[week]
Considerando que @user es la variable que trae 2 o mas posibles valores

P.S: debes de crear primero la funcion en sql server y despues hacer las pruebas ;)
P.S2: El codigo del procedure esta incompleto, falto la parte del create para ver cual era la variable con los 2 posibles valores ;)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 08/04/2015, 15:54
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Ejecutar Stored Procedure con variable que trae varios parametros

Funciono, no funciono, sirve, no sirve????
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #6 (permalink)  
Antiguo 08/04/2015, 15:56
Avatar de rachpts  
Fecha de Ingreso: febrero-2012
Mensajes: 117
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Ejecutar Stored Procedure con variable que trae varios parametros

lo estoy probando, muchas gracias en cuanto termine de hacer mis pruebas te escribo
  #7 (permalink)  
Antiguo 08/04/2015, 16:38
Avatar de rachpts  
Fecha de Ingreso: febrero-2012
Mensajes: 117
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Ejecutar Stored Procedure con variable que trae varios parametros

no entiendo como usar la función, ya lo intente :( me pregunto si no hay una manera mas sencilla
  #8 (permalink)  
Antiguo 08/04/2015, 16:44
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Ejecutar Stored Procedure con variable que trae varios parametros

para hacer lo que quieres no, y como que no entiendes como usar la funcion???

la funcion si le pasas un parametro separado por ',' te regresa una tabla con los valores que pasaste(cada valor en un renglon) para ver como funciona simplemente ejecuta

Código SQL:
Ver original
  1. SELECT * FROM SplitApplication('1,1,1,1')

y veras que regresa
1
1
1
1

eso lo puedes usar en un query cuando haces un

Código SQL:
Ver original
  1. SELECT * FROM tabla WHERE id IN (SELECT * FROM SplitApplication('1,2,3,4'))


Existe otra manera pero seria mas compleja, que usaras querys dinamicos, ademas si vas a tener multiples valores en tus consultas debes de cambiar los = que tienes por in.........
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #9 (permalink)  
Antiguo 08/04/2015, 19:05
Avatar de rachpts  
Fecha de Ingreso: febrero-2012
Mensajes: 117
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Ejecutar Stored Procedure con variable que trae varios parametros

muchas gracias, lo voy a revisar justo ahora asi como me dices, y apenas encuentre la solución la pondré

Etiquetas: parametros, procedure, select, sql, stored, variable
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:31.