Pętle i PL/SQL nie zawsze są potrzebne; ta sztuczka może być pomocna:
insert into emp(id, name, salary)
select rownum, 'Employee ' || to_char(rownum), dbms_random.value(2, 9) * 1000
from dual
connect by level <= 100;
wygeneruje 100 rekordów o nazwach od Pracownik 1 do Pracownik 100 z losowymi „okrągłymi” pensjami od 2000 do 9000.
Dwie główne techniki to:
- Korzystanie z
connect by level <= n
aby wygenerować n wierszy w zapytaniu w trybie dual. - Użycie
dbms_random
pakiet; jest też bardzo przydatna funkcjadbms_random.string
który może być używany – jak sama nazwa wskazuje – do generowania losowych ciągów o określonej długości zawierających określone znaki.