Los bucles y PL/SQL no siempre son necesarios; este truco podría ser útil:
insert into emp(id, name, salary)
select rownum, 'Employee ' || to_char(rownum), dbms_random.value(2, 9) * 1000
from dual
connect by level <= 100;
generará 100 registros, con nombres de Empleado 1 a Empleado 100 con salarios "redondo" aleatorios entre 2000 y 9000.
Las dos técnicas principales son:
- Uso de
connect by level <= n
para generar n filas en una consulta en dual. - Uso de
dbms_random
paquete; también hay una función muy útildbms_random.string
que se puede usar, como sugiere su nombre, para generar cadenas aleatorias de cierta longitud que contengan ciertos caracteres.