Ejemplo de sintaxis de un cursor:
CREATE PROCEDURE curdemo()
BEGIN
DECLARE done
INT DEFAULT FALSE;
DECLARE a
CHAR(16);
DECLARE cur
CURSOR FOR SELECT i
FROM tablaPrueba;
DECLARE CONTINUE
HANDLER FOR NOT FOUND
SET done = TRUE;
OPEN cur;
read_loop: LOOP
FETCH cur
INTO a;
IF done
THEN
LEAVE read_loop;
END IF;
….
END LOOP;
CLOSE cur;
END;
Explicación traducida:
CREAR PROCEDURE demo_cursor()
COMENZAR
DECLARAR hecho ENTERO FALSO POR DEFECTO;
DECLARAR a
CARACTERES(16);
DECLARAR cursor
CURSOR PARA SELECCIONAR i DESDE tablaPrueba;
DECLARAR CONTINUAR CONTROLADOR PARA SET NO ENCONTRADO hecho = VERDADERO;
ABRIR cursor;
leer_bucle: BUCLE
BUSQUEDA cursor DENTRO DE a;
SI hecho ENTONCES
DEJAR leer_bucle;
FIN DEL IF;
….
FIN DEL BUCLE ;
CIERRE DEL cursor;
FIN;
Las partes escritas en mayúsculas, deben ir así siempre al realizar la sentencia correctamente.
No hay comentarios:
Publicar un comentario