EJEMPLOS
LOOP BASICO
Inserción de
registros en la tabla ARTICULOS donde el bucle finaliza al llegar al número de
registro 50.
DECLARE
var1 NUMBER := 42;
var_tnombre
VARCHAR2(50);
var_ciudad
VARCHAR2(50);
var_t
VARCHAR2(10);
BEGIN
LOOP
var_t := 'T'
|| var1;
CASE var1
WHEN 43
THEN
var_tnombre := 'CLASIFICADORA';
var_ciudad := 'MADRID';
WHEN 44
THEN
var_tnombre := 'PERFORADORA';
var_ciudad := 'MALAGA';
WHEN 45
THEN
var_tnombre := 'LECTORA';
var_ciudad := 'CACERES';
WHEN 46
THEN
var_tnombre := 'CONSOLA';
var_ciudad := 'CACERES';
WHEN 47
THEN
var_tnombre := 'MEZCLADORA';
var_ciudad := 'SEVILLA';
WHEN 48
THEN
var_tnombre := 'TERMINAL';
var_ciudad := 'BARCELONA';
WHEN 49
THEN
var_tnombre := 'CINTA';
var_ciudad := 'SEVILLA';
ELSE
var_tnombre := 'Articulo ' || var1;
var_ciudad := 'Ciudad ' || var1;
END CASE;
INSERT INTO
articulos (t, tnombre, ciudad)
VALUES (var_t,
var_tnombre, var_ciudad);
var1 := var1 +
1;
IF var1 >
50 THEN
EXIT;
END IF;
END LOOP;
END;
LOOP WHILE
Inserción de registros en la tabla
CATEGORIA_HABIATCION donde el num_camas va aumentando, es decir, el primer
resultado inicializa en 2 y va aumentando *2. El bucle finaliza en la posición
30 e inicia en el número 26.
DECLARE
valor NUMBER :=
26;
num_camas NUMBER
:= 2;
categoria
VARCHAR2(30);
BEGIN
WHILE valor <=
30 LOOP
IF MOD(valor,
2) = 0 THEN
categoria
:= 'Habitacion Individual';
ELSE
categoria
:= 'Suite';
END IF;
INSERT INTO
categoria_habitacion (IDC, CATEGORIA, NUM_CAMAS)
VALUES (valor
+ 1, categoria, num_camas);
num_camas := 2
* num_camas;
valor := valor
+ 1;
END LOOP;
COMMIT;
END;
LOOP FOR
Inserción de registros en la tabla
COMPONENTES donde el bucle se ejecutara basándose en el rango que se le asigne
al contador, es decir de la posición 7 a la 10. Terminando en al llegar al 10.
BEGIN
FOR contador IN 7..10 LOOP
INSERT INTO componentes (C, CNOMBRE, COLOR,
PESO, CIUDAD)
VALUES (
'C' || contador,
'X3A' || contador,
CASE WHEN MOD(contador, 2) = 0 THEN
'ROJO' ELSE 'AZUL' END,
contador * 100,
CASE WHEN MOD(contador, 2) = 0 THEN
'MADRID' ELSE 'SEVILLA' END
);
END LOOP;
COMMIT;
END;



.png)