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
長度為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)
------------------------------------------------------------------------------------------------------------------------------------------------------