在我的一个项目中,我必须生成一个从1到2000的随机数并将它们存储到表中。我必须在表中存储2000个值。我必须在表中存储不同的值。 锄头在oracle中这样做。我正在使用Oracle 11g。
答案 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包。