I loop e PL/SQL non sono sempre necessari; questo trucco potrebbe essere utile:
insert into emp(id, name, salary)
select rownum, 'Employee ' || to_char(rownum), dbms_random.value(2, 9) * 1000
from dual
connect by level <= 100;
genererà 100 record, denominati da Dipendente 1 a Impiegato 100 con stipendi "rotondi" casuali compresi tra 2000 e 9000.
Le due tecniche principali sono:
- Utilizzo di
connect by level <= n
per generare n righe in una query su dual. - Utilizzo di
dbms_random
pacchetto; c'è anche una funzione molto utiledbms_random.string
che può essere utilizzato, come suggerisce il nome, per generare stringhe casuali di una certa lunghezza contenenti determinati caratteri.