Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/12/2012, 12:29
solilopi
 
Fecha de Ingreso: enero-2012
Mensajes: 52
Antigüedad: 12 años, 3 meses
Puntos: 1
Pregunta 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.