Ver Mensaje Individual
  #7  
Antiguo 15-07-2019
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Reputación: 11
bucanero Va camino a la fama
el problema puede venir de que no tienes inicializada la variable de salida del procedimiento, por lo que si el valor es NULL, todo lo que concatenes automáticamente sera NULL

De esta forma a mi me funciona, solo he añadido la linea en rojo:

Código SQL [-]
CREATE PROCEDURE `usuarios`(OUT mails varchar(400))
BEGIN
  DECLARE no_more_records INTEGER DEFAULT 0;
  DECLARE v_email VARCHAR(100) DEFAULT "";

  DECLARE cur_EventRanks CURSOR FOR
  SELECT mail FROM usuario;

  DECLARE CONTINUE HANDLER 
      FOR NOT FOUND SET no_more_records=1;

  SET mails=''; -- inicializar la variable de salida
  SET no_more_records = 0;

  OPEN cur_EventRanks;

  cur_Loop:
   LOOP
      FETCH cur_EventRanks   INTO v_email;

      IF no_more_records = 1
      THEN
         LEAVE cur_Loop;
      END IF;

      SET mails = CONCAT(v_email, ";", mails);
   END LOOP cur_Loop;

  CLOSE cur_EventRanks;
END
Responder Con Cita