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

Declarar vector en procedim almacenad

Estas en el tema de Declarar vector en procedim almacenad en el foro de SQL Server en Foros del Web. Hola, Tengo un problema y es que no se como declarar un vector en un procedimiento almacenado. Les agradeceria mucho si me ayudaran con esto. ...
  #1 (permalink)  
Antiguo 28/08/2008, 13:04
 
Fecha de Ingreso: febrero-2007
Mensajes: 139
Antigüedad: 17 años, 3 meses
Puntos: 0
Declarar vector en procedim almacenad

Hola,

Tengo un problema y es que no se como declarar un vector en un procedimiento almacenado. Les agradeceria mucho si me ayudaran con esto.

Gracias al que me pueda ayudar
  #2 (permalink)  
Antiguo 28/08/2008, 13:28
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Respuesta: Declarar vector en procedim almacenad

no existen los vectores en sql server.

puedes declarar una variable tipo tabla o una tabla temporal de sesion o global..

Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #3 (permalink)  
Antiguo 28/08/2008, 20:28
 
Fecha de Ingreso: febrero-2007
Mensajes: 139
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: Declarar vector en procedim almacenad

Hola,

Soy nueva en esto de los procedimientos, como hago esto?

Gracias en lo que me puedas ayudar
  #4 (permalink)  
Antiguo 29/08/2008, 09:25
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Respuesta: Declarar vector en procedim almacenad

para declarar una variable tabla

Código:
Declare @MiVarTable Table (
 Id int,
 Descripcion varchar(30)
)
Para crear una tabla temporal de sesion (el simbolo previo al nombre indica al sql server que se trata de una temporal de sesion):
Código:
Create table #MiVarTable (
 Id int,
 Descripcion varchar(30)
)
Para mayor referencia consultar la ayuda de sql server...

Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #5 (permalink)  
Antiguo 08/09/2008, 12:39
 
Fecha de Ingreso: febrero-2007
Mensajes: 139
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: Declarar vector en procedim almacenad

Hola

Gracias por su ayuda, pero lo que estoy haciendo es :
Cada hora, un trigger me debe insertar en una tabla permanente ( fecha, nombre y valor) , varios datos a la vez en diferentes filas.
Por ejm:
a las 8 se debe guardar en la tabla los valores 1, 2... uno debajo del otro.
Envio un ejm del procedimiento como le pensaba con vectores (yo se que no se puede vectores, pero es una idea para implementar con variable tipo tabla)

Por eso, necesitaba un vector, pero no se como hacer esto con la variable tipo tabla, es decir, creo la variable e inserto los datos que necesito, pero mi pregunta es, ¿Como recorro luego esta variable tipo tabla para insertar estos datos en mi tabla permanente?

Gracias en lo que me puedas ayudar.

Cita:

CREATE PROCEDURE spTempCubas
AS
DECLARE @FECHA DATETIME
DECLARE @Temp(18,3) varchar(10)
set @FECHA = GETDATE()

SET @Temp (0,0) =@ FECHA
SET @Temp (0.1) = 'Cuba 41'
Select @Temp (0,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'k141'

SET @Temp (1,0) =@ FECHA
SET @Temp (1.1) = 'Cuba 42'
Select @Temp (1,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'k142'

for i = 0 to 17
INSERT INTO TemperaturaCubas (FECHA, Cuba, Temperatura) VALUES ( @Temp (i,0) , @Temp (i,1) , @Temp (i,2) )
next

GO
  #6 (permalink)  
Antiguo 08/09/2008, 13:38
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Declarar vector en procedim almacenad

No seria suficiente con:
Cita:
insert into TemperaturaCubas Select getdate(),'Cuba 41',Value from runtime.dbo.v_AnalogLive where TagName = 'k141'

insert into TemperaturaCubas Select getdate(),'Cuba 42',Value from runtime.dbo.v_AnalogLive where TagName = 'k142'
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #7 (permalink)  
Antiguo 08/09/2008, 13:55
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Respuesta: Declarar vector en procedim almacenad

y si lo intentas asi?

Código:
CREATE PROCEDURE spTempCubas 
AS
DECLARE @FECHA DATETIME

Set @FECHA = GETDATE()

INSERT INTO TemperaturaCubas (FECHA, Cuba, Temperatura) 
Select top 17 @FECHA, 'Cuba 41', Value 
From runtime.dbo.v_AnalogLive where TagName = 'k141' 


INSERT INTO TemperaturaCubas (FECHA, Cuba, Temperatura) 
Select top 17 @FECHA, 'Cuba 42', Value 
From runtime.dbo.v_AnalogLive where TagName = 'k142' 




GO
inclui un top 17 porque no se si existan mas de 17 registros en dicha tabla y en tu code solo insertabas 17.

** Edit .- Parece que me ganaron la respuesta...


Saludos a ambos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #8 (permalink)  
Antiguo 08/09/2008, 20:24
 
Fecha de Ingreso: febrero-2007
Mensajes: 139
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: Declarar vector en procedim almacenad

Holas

muchas gracias por sus prontas respuestas.
Si serviria lo que me escriben, seria muy largo el codigo.. pero igual me gustaria saber como recorrer una variable tipo tabla.

Gracias!!!
  #9 (permalink)  
Antiguo 09/09/2008, 07:51
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Declarar vector en procedim almacenad

Deberias dar mas datos. Nosotros hemos respondido de acuerdo a como has planteado tu problema.
Lo que yo noto es que tienes 2 valores variables: TagName y Cuba xxx. Háblanos sobre ellos. Tienes más valores variables?
No pienso que la mejor solución sea "recorrer una variable tipo tabla".
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #10 (permalink)  
Antiguo 09/09/2008, 12:19
 
Fecha de Ingreso: febrero-2007
Mensajes: 139
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: Declarar vector en procedim almacenad

hola,

Esta es mi idea:

Cita:
CREATE PROCEDURE spTempCubas
AS
DECLARE @FECHA DATETIME
DECLARE @Temp(18,3) varchar(10)
set @FECHA = GETDATE()

SET @Temp (0,0) =@ FECHA
SET @Temp (0.1) = 'Cuba 41'
Select @Temp (0,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'k141'

SET @Temp (1,0) =@ FECHA
SET @Temp (1.1) = 'Cuba 42'
Select @Temp (1,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'k142'

SET @Temp (2,0) =@ FECHA
SET @Temp (2.1) = 'Cuba 43'
Select @Temp (2,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'k143'

SET @Temp (3,0) =@ FECHA
SET @Temp (3.1) = 'Cuba 44'
Select @Temp (3,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'k144'

SET @Temp (4,0) =@ FECHA
SET @Temp (4.1) = 'Cuba 45'
Select @Temp (4,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'k145'

SET @Temp (5,0) =@ FECHA
SET @Temp (5.1) = 'Cuba 46'
Select @Temp (5,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'k146'

SET @Temp (6,0) =@ FECHA
SET @Temp (6.1) = 'Cuba 47'
Select @Temp (6,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'k147'

SET @Temp (7,0) =@ FECHA
SET @Temp (7.1) = 'Cuba 48'
Select @Temp (7,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'k148'

SET @Temp (8,0) =@ FECHA
SET @Temp (8.1) = 'Cuba 49'
Select @Temp (8,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'k149'

SET @Temp (9,0) =@ FECHA
SET @Temp (9.1) = 'Cuba 50'
Select @Temp (9,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'k150'

SET @Temp (10,0) =@ FECHA
SET @Temp (10.1) = 'Cuba 51'
Select @Temp (10,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'K151'

SET @Temp (11,0) =@ FECHA
SET @Temp (11.1) = 'Cuba 52'
Select @Temp (11,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'K152'

SET @Temp (12,0) =@ FECHA
SET @Temp (12.1) = 'Cuba53'
Select @Temp (12,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'K153'

SET @Temp (13,0) =@ FECHA
SET @Temp (13.1) = 'Cuba 54'
Select @Temp (13,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'K154'

SET @Temp (14,0) =@ FECHA
SET @Temp (14.1) = 'Cuba 55'
Select @Temp (14,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'K155'

SET @Temp (15,0) =@ FECHA
SET @Temp (15.1) = 'Cuba 56'
Select @Temp (15,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'K156'

SET @Temp (16,0) =@ FECHA
SET @Temp (16.1) = 'Cuba 57'
Select @Temp (16,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'K157'

SET @Temp (17,0) =@ FECHA
SET @Temp (17.1) = 'Cuba 58'
Select @Temp (17,2) = Value from runtime.dbo.v_AnalogLive where TagName = 'K158'


for i = 0 to 17
INSERT INTO TemperaturaCubas (FECHA, Cuba, Temperatura) VALUES ( @Temp (i,0) , @Temp (i,1) , @Temp (i,2) )
next

GO
Creo que es lo mismo que ustedes planten, ir insertando de una vez.
Pero si me gustaria saber lo del recorrido de la variable.

Gracias por su ayuda
  #11 (permalink)  
Antiguo 09/09/2008, 17:33
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Declarar vector en procedim almacenad

glory82 (disculpa que meta mi cuchara donde no me llaman)

¿Que tipo de codificacion es la que nos muestras?

Es decir, ¿Para que motor de base de datos?
  #12 (permalink)  
Antiguo 09/09/2008, 20:07
 
Fecha de Ingreso: febrero-2007
Mensajes: 139
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: Declarar vector en procedim almacenad

Hola

Es sqlserver, es que estoy intentando hacer lo que tengo alli, pero sin el vector(porque no se puede).
  #13 (permalink)  
Antiguo 10/09/2008, 10:29
Avatar de rj69  
Fecha de Ingreso: agosto-2008
Ubicación: Melipilla
Mensajes: 49
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Declarar vector en procedim almacenad

glory 82, tu dices tener "un trigger me debe insertar en una tabla permanente ( fecha, nombre y valor)" estos datos de donde los sacas?? otra tabla??? por que de ser asi, lo que deberias hacer es una sentencia SQL que extraiga los datos de la "otra tabla" he insertarlos en la tabla permantente,
explica mas el origen de tus datos, ya que incluso podrias no necesitar "vectores" o tablas temporales, podrias hacer el traspaso de forma directa.
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 07:21.