Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/01/2011, 11:56
gabrieldivenuto
 
Fecha de Ingreso: enero-2011
Mensajes: 10
Antigüedad: 13 años, 3 meses
Puntos: 0
Cursor y Tabla Temporal en MySQL.

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.