dbms_random是一个可以生成随机数值或者字符串的程序包。
这个包有initialize()、seed()、terminate()、value()、normal()、random()、string()等几个函数,但value()是最常用的,下面依次介绍各个函数的详细用法:
1、value
1)这种用法没有参数,会返回一个具有38位精度的数值,范围从0.0到1.0,但不包括1.0。
21:50:04 sys@CRMUAT> select dbms_random.value from dual;
VALUE
----------
.741774153
2) value 带有两个参数,第一个指下限,第二个值上限,生成的值在上、下限之间
22:17:55 sys@CRMUAT>select dbms_random.value(1,10) from dual;
DBMS_RANDOM.VALUE(1,10)
-----------------------
2.24073625
2、random 返回的是 BINARY_INTEGER 类型值 , 产生一个任意大小的随机数。
22:18:09 sys@CRMUAT>select dbms_random.random from dual;
RANDOM
----------
-1.569E+09
3、 string 引用官方文档的解释
'u', 'U' - returning string in uppercase alpha characters
'l', 'L' - returning string in lowercase alpha characters
'a', 'A' - returning string in mixed case alpha characters
'x', 'X' - returning string in uppercase alpha-numeric characters
'p', 'P' - returning string in any printable characters.
4、seed 用于生成随机数种子,用于保证每次生成的随机数都一样
22:29:39 sys@CRMUAT>BEGIN
22:29:55 2 dbms_random.seed('cux');
22:29:55 3 FOR i IN 1 .. 10 LOOP
22:29:55 4 dbms_output.put_line(round(dbms_random.value * 100));
22:29:55 5 END LOOP;
22:29:55 6 END;
22:29:56 7 /
6
83
23
22
37
7
46
95
94
82
PL/SQL procedure successfully completed.
22:29:57 sys@CRMUAT>/
6
83
23
22
37
7
46
95
94
82
PL/SQL procedure successfully completed.