MySQL - Cursor y Tabla Temporal.

 
Vista:

Cursor y Tabla Temporal.

Publicado por Gabriel (1 intervención) el 18/01/2011 12:54:26
Buen día,
tengo un Procedimiento Almacenado en MySQL donde utilizo un cursor, el cual voy recorriendo y almacenando en una tabla temporal el resultado de una query.

Un ejemplo de uso sería, el cual no estoy seguro si es así:

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-18';

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 ésta sintaxis ya que el procedimiento que utilizo no me devuelve ningún dato.

Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder