在Oracle中生成随机数

发布于 2024-12-01 12:18:49 字数 113 浏览 2 评论 0原文

在我的一个项目中,我必须生成一个从 1 到 2000 的随机数并将它们存储到表中。我必须在表中存储 2000 个值。我必须在表中存储不同的值。 在 oracle 中执行此操作。我使用的是 Oracle 11g 。

In one of my project i have to generate a random number from 1 to 2000 and store them into table.I have to store 2000 value in the table.I have to store different value in the table.
Hoe to do this in oracle.I am using Oracle 11g .

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

没有伤那来痛 2024-12-08 12:18:49

如果您必须存储 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 包。

If you have to store 2000 unique random integers between 1 and 2000 you can use the following code:

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

(There is only one set of 2000 unique integers between 1 and 2000 and that is the set of every number from 1 to 2000.)

If you want to generate random numbers I recommend using DBMS_CRYPTO.RANDOMINTEGER.

To insert random numbers between 1 and 2000 (duplicates allowed), exchange the insert above with:

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

In earlier versions (Oracle 10 and earlier) use the DBMS_RANDOM package.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文