Sentencia LOOP

La sentencia LOOP ejecuta una secuencia de sentencias de manera repetida e incondicional.

Asegúrese de que la lógica del programa proporciona los medios de interrumpir el bucle. Puede utilizar sentencias LEAVE o RETURN.

Sintaxis

Si está presente, Etiqueta suministra un nombre a la sentencia. Esto no tiene ningún efecto en el comportamiento de la sentencia LOOP, pero permite que las sentencias incluyan sentencias ITERATE y LEAVE u otras sentencias etiquetadas, que a su vez incluyen ITERATE y LEAVE. La segunda Etiqueta sólo puede estar presente si la primera Etiqueta está presente y, en este caso, las etiquetas deben ser idénticas.

Dos o más sentencias etiquetadas en el mismo nivel pueden tener la misma Etiqueta, pero esto niega parcialmente la ventaja de la segunda Etiqueta. La ventaja es que coinciden, de manera precisa y no ambigua, cada END con su LOOP. Sin embargo, una sentencia etiquetada dentro de sentencias no puede tener la misma etiqueta, porque esto hace que el comportamiento de las sentencias ITERATE y LEAVE sea ambiguo.

La sentencia LOOP es útil en los casos en que la lógica necesaria dicta que siempre se sale a mitad de recorrido de un bucle. Esto se debe a que, en estos casos, la prueba de una condición de bucle que se produce en sentencias REPEAT o WHILE es innecesaria y un derroche.

Ejemplo

DECLARE i INTEGER;
SET i = 1;
X : LOOP 
  ...
  IF i >= 4 THEN
    LEAVE X;
  END IF;
  SET i = i + 1;
END LOOP X;
La sentencia LOOP es útil en los casos en que la lógica necesaria dicta que siempre se sale a mitad de recorrido de un bucle. En estos casos, la prueba de una condición de bucle que se produce en sentencias REPEAT y WHILE es innecesaria y un derroche.

Conceptos relacionados
ESQL

Tareas relacionadas
Desarrollo de ESQL

Referencia relacionada
Preferencia de sintaxis
Sentencias ESQL