Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/10/2012, 12:27
r0xdrig0
 
Fecha de Ingreso: diciembre-2007
Mensajes: 385
Antigüedad: 16 años, 4 meses
Puntos: 0
[Error] 1307 - Failed to CREATE PROCEDURE descontar_feriados

Estimados junto con saludarlos; nuevamente aqui para consultarles lo siguiente:

estoy desarrollando un proyecto en modo local con mysql version 5.5.24 en el cual tengo un procedimiento almcenado que se ejecuta y me funciona como deseo, pero el problema se me presenta cuando pasa al servidor mysql de produccion q es la version 5.1.3, pues ahi me envia el [Error] 1307 - Failed to CREATE PROCEDURE, y no se pq ya q mysql desde la version 5 soporta procedimientos almacenados en cuanto a error de sintaxis de mi stored procedure no tengo dudas q funciona perfectamente ya q lo he probado en local y hace lo q deseo el procedimiento en cuestion es:

Código MySQL:
Ver original
  1. DELIMITER $$
  2.     DROP PROCEDURE IF EXISTS descontar_feriados $$
  3.     CREATE PROCEDURE descontar_feriados (funCodigo VARCHAR (11), diasPedidos INT)
  4.      
  5.     BEGIN
  6.      
  7.         DECLARE feriado1, feriado2, resultado_fer1, resultado_fer2, resultado_intermedio INT;
  8.         SET feriado1=0;
  9.         SET feriado2=0;
  10.        
  11.      
  12.         SELECT fer_1, fer_2 INTO feriado1, feriado2 FROM datos WHERE Fun_Codigo = funCodigo;
  13.         CASE
  14.  
  15.         WHEN feriado1>=diasPedidos THEN
  16.                 SET resultado_fer1= feriado1 - diasPedidos;
  17.                 UPDATE datos SET fer_1 = resultado_fer1 WHERE Fun_Codigo= funCodigo;
  18.                
  19.             /*feriado1 < a dias pedidos listo*/
  20.         WHEN feriado1 < diasPedidos THEN
  21.            
  22.             SET resultado_fer1 = diasPedidos- feriado1 ;
  23.  
  24.             SET resultado_intermedio = feriado2 - resultado_fer1;
  25.  
  26.             UPDATE datos SET fer_1 = 0 WHERE Fun_Codigo= funCodigo;
  27.             UPDATE datos SET fer_2 = resultado_intermedio WHERE Fun_Codigo= funCodigo;
  28.  
  29.             WHEN feriado2 < diasPedidos AND feriado2<0 THEN
  30.  
  31.             SET resultado_fer2= feriado2;
  32.             UPDATE datos SET fer_2 = feriado2 WHERE Fun_Codigo= funCodigo;
  33.  
  34.    
  35. END$$
  36. DELIMITER ;
por lo q he averiguado haciendole un alter table a la tabla la cual utliza el procedimiento y colocandole esta linea:

ENGINE=ndbcluster DEFAULT CHARSET=latin1

deberia solucionarme el problema, pero antes de ir a proponer cualquier cambio al DBA me gustaria q uds me dieran su opinion o formas de posibles soluciones .... de antemano muchas gracias... bye

Última edición por gnzsoloyo; 05/10/2012 a las 12:28 Razón: Etiqueta errónea para BBCode