Генерация случайного числа в Oracle - PullRequest
2 голосов
/ 25 августа 2011

В одном из моих проектов мне нужно сгенерировать случайное число от 1 до 2000 и сохранить их в таблице. Мне нужно сохранить значение 2000 в таблице. Мне нужно сохранить другое значение в таблице.Как это сделать в оракуле. Я использую Oracle 11g.

1 Ответ

7 голосов
/ 25 августа 2011

Если вам нужно сохранить 2000 уникальных случайных целых чисел от 1 до 2000, вы можете использовать следующий код:

declare 
i pls_integer;
begin
for i in 1..2000 loop
  insert into my_table (my_column) values (i);
end loop;
end;
/

(Существует только один набор из 2000 уникальных целых чисел от 1 до 2000, и этонабор каждого числа от 1 до 2000.)

Если вы хотите сгенерировать случайные числа, я рекомендую использовать DBMS_CRYPTO.RANDOMINTEGER.

Для вставки случайных чисел от 1 до 2000 (допускаются дубликаты), обменятьвставка выше с:

insert into my_table (my_column) values (MOD(DBMS_CRYPTO.RANDOMINTEGER, 2000) + 1);

В более ранних версиях (Oracle 10 и более ранних) используйте пакет DBMS_RANDOM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...