Schleifen und PL/SQL sind nicht immer notwendig; Dieser Trick könnte hilfreich sein:
insert into emp(id, name, salary)
select rownum, 'Employee ' || to_char(rownum), dbms_random.value(2, 9) * 1000
from dual
connect by level <= 100;
generiert 100 Datensätze mit den Namen "Mitarbeiter 1" bis "Mitarbeiter 100" mit zufälligen "runden" Gehältern zwischen 2000 und 9000.
Die beiden Haupttechniken sind:
- Verwendung von
connect by level <= n
um n Zeilen in einer Abfrage auf dual zu generieren. - Verwendung von
dbms_random
Paket; es gibt auch eine sehr nützliche Funktiondbms_random.string
die verwendet werden kann -- wie der Name schon sagt -- um zufällige Zeichenfolgen einer bestimmten Länge zu erzeugen, die bestimmte Zeichen enthalten.