
20/12/2012, 12:29
|
| | Fecha de Ingreso: enero-2012
Mensajes: 52
Antigüedad: 13 años, 1 mes Puntos: 1 | |
Error en procedimiento almacenado Hola, tengo el siguiente procedimiento almacenado:
Código:
DELIMITER //
CREATE PROCEDURE inserciones (ruta varchar(30),tempo varchar(8),
espacio decimal(5,2))
BEGIN
declare space decimal (7,2);
declare hora int(8);
declare minuto int(8);
declare segundo int(8);
declare resultado decimal(7,2);
declare kilocal decimal(5.2);
declare operacion decimal(7.2);
set space = espacio*1000;
set hora = cast(substring(tempo,1,2)as unsigned);
set minuto = cast(substring(tempo,4,2)as unsigned);
set segundo = cast(substring(tempo,-2)as unsigned);
set hora = hora*3600;
set minuto = minuto*60;
set resultado = (space/(hora+minuto+segundo))*3.6;
select coeficiente from coeficientes where resultado
between coeficientes.desde and coeficientes.hasta into operacion;
set kilocal = (85*operacion*((hora*60)+minuto+(segundo/60)));
insert into datos (recorrido,tiempo,distancia,calorias,kmh)
values (ruta,tempo,espacio,kilocal,resultado);
END //
Las tablas de mi bd son:
Código:
CREATE TABLE IF NOT EXISTS `datos` (
`salida_num` int(10) unsigned NOT NULL AUTO_INCREMENT,
`recorrido` varchar(30) COLLATE utf8_spanish2_ci NOT NULL,
`tiempo` varchar(8) COLLATE utf8_spanish2_ci NOT NULL,
`distancia` decimal(5,2) NOT NULL,
`calorias` decimal(5,2) NOT NULL,
`kmh` decimal(5,2) NOT NULL,
PRIMARY KEY (`salida_num`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_spanish2_ci AUTO_INCREMENT=1 ;
Y
Código:
CREATE TABLE IF NOT EXISTS `coeficientes` (
`kmh` decimal(3,1) unsigned NOT NULL,
`desde` decimal(4,2) unsigned NOT NULL,
`hasta` decimal(4,2) unsigned NOT NULL,
`coeficiente` decimal(5,4) unsigned NOT NULL,
PRIMARY KEY (`kmh`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_spanish2_ci;
Mi problema es que al realizar el procedimiento anterior, en la tabla datos no me inserta nada en el campo calorias, no sé porqué. ¿Podéis ayudarme?. Gracias. |