Buenas tardes,
tengo un SP en MySQL donde utilizo un cursor, el cual voy recorriendo y almacenando en una tabla temporal el resultado de una query.
CREATE PROCEDURE proc_para_probar()
BEGIN
-- Declaracion de Variables Locales
DECLARE campo1 SMALLINT(6);
DECLARE campo2 CHAR(1);
DECLARE campo3 DECIMAL(10,0);
DECLARE no_hay_mas_registros INT DEFAULT 0;
DECLARE elCursor CURSOR FOR
SELECT * FROM tabla WHERE fecha BETWEEN '2007-01-01' AND '2011-01-17';
DECLARE CONTINUE HANDLER FOR NOT FOUND SET no_hay_mas_registros = 1;
-- Tabla Temporal
CREATE TEMPORARY TABLE TablaTemporal ( campo1 SMALLINT(6),
campo2 CHAR(1),
campo3 DECIMAL(10,0)
);
-- SE ABRE EL CURSOR
OPEN elCursor;
-- SE VAN TOMANDO LOS DATOS HASTA QUE EL CURSOR LLEGUE AL FINAL
bucle: LOOP
FETCH elCursor INTO campo1, campo2, campo3;
IF (no_hay_mas_registros=1) THEN
LEAVE bucle;
END IF;
-- SE CARGAN LOS DATOS EN LA Tabla Temporal
INSERT TablaTemporal(campo1, campo2, campo3)
VALUES(campo1, campo2, campo3);
END LOOP bucle;
CLOSE elCursor;
SELECT *
FROM TablaTemporal
ORDER BY campo1, campo2, campo3;
END$$
Deseo saber si es posible en MySQL utilizar esta sintaxis ya que no me devuelve ningún dato.
Muchas gracias.