Если вам действительно нужно отдельное случайное число, вам нужно будет сгенерировать много, гораздо больше чисел, чем строк.
Обратите внимание на следующий запрос:
with generator as
(select /*+ materialize */ rownum rn from dba_objects where rownum <= 250)
select count(distinct rv), count(rv) from
(
select trunc(dbms_random.value(1,9999999)) as rv
from generator v1
cross join generator v2
cross join generator v3
where rownum <= 10000000
)
Некоторые примеры казней:
COUNT(DISTINCTRV) COUNT(RV)
----------------- ----------
6321429 10000000
6321827 10000000
6321941 10000000
6321507 10000000