Циклите и PL/SQL не винаги са необходими; този трик може да е полезен:
insert into emp(id, name, salary)
select rownum, 'Employee ' || to_char(rownum), dbms_random.value(2, 9) * 1000
from dual
connect by level <= 100;
ще генерира 100 записа, наречени Служител 1 до Служител 100 със произволни „кръгли“ заплати между 2000 и 9000.
Двете основни техники са:
- Използване на
connect by level <= n
за генериране на n реда в заявка на двойно. - Използване на
dbms_random
пакет; има и много полезна функцияdbms_random.string
който може да се използва – както подсказва името му – за генериране на произволни низове с определена дължина, съдържащи определени знаци.