El lenguaje PL/SQL permite la construcción de bucles, esta funcionalidad es, sin duda, extremadamente útil.
No obstante, utilizar bucles puede causar problemas de rendimiento en nuestras rutinas, aunque ciertamente estos problemas son fáciles de determinar y corregir.
Imaginemos que una rutina PL/SQL contiene una sentencia select y los registros que devuelve son utilizados para actualizar otra tabla dentro de un bucle.
Por ejemplo:
FOR bucle1 IN (
SELECT articulo
FROM articulos
WHERE descripcion = ‘%zapato%’
) LOOP
UPDATE precios
SET precio = precio * 1.05
WHERE articulo = bucle1.articulo;
END LOOP;