在Oracle中生成随机数

时间:2011-08-25 12:14:01

标签: oracle random plsql oracle11g

在我的一个项目中,我必须生成一个从1到2000的随机数并将它们存储到表中。我必须在表中存储2000个值。我必须在表中存储不同的值。 锄头在oracle中这样做。我正在使用Oracle 11g。

1 个答案:

答案 0 :(得分:7)

如果必须存储介于1和2000之间的2000个唯一随机整数,则可以使用以下代码:

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

(1到2000之间只有一组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包。