【发布时间】:2016-11-12 12:51:57
【问题描述】:
我需要编写一个程序来生成从 x 到 y 范围内的 n 个唯一数字?不允许重复。我知道可以使用 dbms_random.value(x, y) 生成随机数,但值是重复的。
【问题讨论】:
-
您需要提供 n 的上限。如果 n 太大,问题可能没有解决方案(机器中可以表示的数字的数量总是有限的,因此如果 n 大于该数字,则没有解决方案)。如果 n 仍然非常大,但在第一种意义上不是“太大”,那么问题可能是可以解决的,但时间估计为 9,000 年。那么:为什么需要写一个PROCEDURE?这可以在纯 SQL 中完成。 “过程”是字面意思 - 这是用于 PL/SQL 中的一个类,还是编写过程?还是一个简单的 SQL 解决方案就足够了?