Loops en PL/SQL zijn niet altijd nodig; deze truc kan nuttig zijn:
insert into emp(id, name, salary)
select rownum, 'Employee ' || to_char(rownum), dbms_random.value(2, 9) * 1000
from dual
connect by level <= 100;
genereert 100 records, genaamd Werknemer 1 tot Werknemer 100 met willekeurige "ronde" salarissen tussen 2000 en 9000.
De twee belangrijkste technieken zijn:
- Gebruik van
connect by level <= n
om n rijen te genereren in een query op dual. - Gebruik van
dbms_random
pakket; er is ook een erg handige functiedbms_random.string
die kan worden gebruikt -- zoals de naam al doet vermoeden -- om willekeurige reeksen van een bepaalde lengte te genereren die bepaalde tekens bevatten.