Oracle dbms_random
介绍几个常用的功能
生成0-1的小数(默认)
SQL> select dbms_random.valuefrom dual;
VALUE
----------
.932351752
Note:可通过trunc、round函数对结果进行加工
生成指定范围内的数
FUNCTION VALUE RETURNS NUMBER
Argument Name Type In/Out Default?
----------------------------------------------------- ------ --------
LOW NUMBER IN
HIGH NUMBER IN
SQL> select dbms_random.value(23,48)from dual;
DBMS_RANDOM.VALUE(23,48)
------------------------
23.1991482
Note:可通过trunc、round函数对结果进行加工
长度为20的随机数字串
SQL> select length(cast(dbms_random.valueas varchar2(1024))) from dual;
LENGTH(CAST(DBMS_RANDOM.VALUEASVARCHAR2(1024)))
-----------------------------------------------
39
说明小数点后只有38位占位符有数字
SQL> select substr(cast(dbms_random.valueas varchar2(38)),3,20) from dual;
SUBSTR(CAST(DBMS_RANDOM.VALUEASVARCHAR2(
----------------------------------------
52633757378080443317
正态分布的随机数
select dbms_random.normal from dual;
随机字符串
select dbms_random.string(opt, length) fromdual;
opt可取值如下:
‘u‘,‘U‘ : 大写字母
‘l‘,‘L‘ : 小写字母
‘a‘,‘A‘ : 大、小写字母
‘x‘,‘X‘ : 数字、大写字母
‘p‘,‘P‘ : 可打印字符
SQL> select dbms_random.string(‘U‘,10)from dual;
DBMS_RANDOM.STRING(‘U‘,10)
------------------------------------------------------------------------------------------------------------------------------------------------------
DTKOJUGGHI
总结:通过dbms_random可实现随机日期、随机字符串;反可带有随机的变化量的,均可使用这个函数进行转化。