dbms_random包提供给用户获取随机数。使用dbms_random包的时候,提供随机数种子,所谓的随机数种子就是在random算法时候使用的值
dbms_random包提供给用户获取随机数。使用dbms_random包的时候,提供随机数种子,所谓的随机数种子就是在random算法时候使用的值。在很多编程语言中,两次随机数的种子是一样的,那么得到的随机数序列也是一样的。所以很有必要在使用dbms_random获取随机数的时候,提供不同的种子来获取序列,dmbs_random包中的过程与函数如下:
1)initialize:
该过程初始化dmbs_random包,必须要初始化随机数种子,语法如下:
dbms_random.initialize(seed in binary_interger)
2)seed
该过程用于重新设置随机数种子,语法如下:
dbms_random.seed(seed in binary_integer);
3)random
该函数用于生成随机数,语法如下:
dbms_random.random return binary_integer;
4)terminate
该过程用于关闭dbms_random包,,语法如下:
dbms_random.terminate;
下面是几个获取随机数的例子:
set serverout on;
declare
n_randomnum number(10);
n_randomseed constant number :=98765;
begin
dbms_random.initialize(n_randomseed);
for i in 0..10 loop
n_randomnum := abs(dbms_random.random()/ n_randomseed);
dbms_output.put_line(n_randomnum);
end loop;
dbms_random.terminate;
end;
得到0到10之间的整数:
select ceil(dbms_random.value(0,10)) from dual;
得到0到1之间的一个小数:
select dbms_random.value from dual;
得到0到100之间的一个小数:
select dbms_random.value(0,100) from dual;
获取字符以及数字组成的随机数(第一个参数可以取值如下:'u','u':大写字母、'l','l':小写字母、'a','a':大、小写字母、'x','x':数字、大写字母、'p','p':可打印字符、):
select dbms_random.string('x', 3) from dual ;
