Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/06/2013, 13:06
imperezivan
 
Fecha de Ingreso: marzo-2013
Mensajes: 5
Antigüedad: 8 años
Puntos: 0
Error al crear nueva funcion mysql

Saludos a todos no se si alguien me pueda ayudar
al insertar el siguiente codigo para crear una funcion en mysql me regresa un error
el query lo saque de mysql 5.1.41-3ubuntu12.10 (Ubuntu)
de una funcion que quiero usar en otra base de datos (mysql 5.0.7-beta-nt)
en la de ubuntu si corre y crea la funcion pero en la otra no

Código MySQL:
Ver original
  1. delimiter $$
  2.  
  3. CREATE  FUNCTION `getTabuladorSueldo`(id int, fecha date) RETURNS double
  4.     declare sueldoTab double default 0;
  5.     declare done int default 0;
  6.     declare fechaInicial date;
  7.     declare fechaFinal date;
  8.     declare sueldo double;
  9.     declare sueldoTabulador cursor for select t.fechaInicial, t.fechaFinal, t.importe as sueldo from TabuladorSueldo t where t.idTabulador = id;
  10.     DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
  11.    
  12.     open sueldoTabulador;
  13.     fetch sueldoTabulador into fechaInicial, fechaFinal, sueldo;
  14.     ciclo: while not done do
  15.         if fechaFinal is null then
  16.             set sueldoTab = sueldo;
  17.             LEAVE ciclo;
  18.         elseif fecha between fechaInicial and fechaFinal then
  19.             set sueldoTab = sueldo;
  20.             LEAVE ciclo;
  21.         end if;
  22.         fetch sueldoTabulador into fechaInicial, fechaFinal, sueldo;
  23.     end while;
  24.     close sueldoTabulador;
  25.     return sueldoTab;
  26. END$$


Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ciclo: while not done do if fechaFinal is null then set sueldoTab = sueldo;' at line 13