Slingor och PL/SQL är inte alltid nödvändiga; det här tricket kan vara till hjälp:
insert into emp(id, name, salary)
select rownum, 'Employee ' || to_char(rownum), dbms_random.value(2, 9) * 1000
from dual
connect by level <= 100;
kommer att generera 100 poster, med namnet Employee 1 till Employee 100 med slumpmässiga "runda" löner mellan 2000 och 9000.
De två huvudteknikerna är:
- Användning av
connect by level <= n
för att generera n rader i en fråga på dual. - Användning av
dbms_random
paket; det finns också en mycket användbar funktiondbms_random.string
som kan användas -- som namnet antyder -- för att generera slumpmässiga strängar av en viss längd som innehåller vissa tecken.