在oracle 中生成随机数

在oracle 中生成随机数
有时候我们需要使用到随机数,可以使用dbms_random 来产生各种各样的随机数。
1、初始化随机数参数的种子。
如果不指定随机数参数的种子,oracle将会使用当前时间,用户id,进程id号来生成种子。如果指定的种子相同将会生成相同的随机数(随机数是种子通过复杂的运算得到的,并不是真正的随机)。
SQL>  begin
  2   dbms_random.seed(1234);
  3   end;
  4   /
PL/SQL procedure successfully completed.
SQL> select dbms_random.string('p',5) from dual;
DBMS_RANDOM.STRING('P',5)
-----------------------------------------------------------------
H 1AJ
SQL> begin
  2  dbms_random.seed(1234);
  3  end;
  4  /
PL/SQL procedure successfully completed.
SQL> select dbms_random.string('p',5) from dual;
DBMS_RANDOM.STRING('P',5)
-----------------------------------------------------------------
H 1AJ
2、使用dbms_random.random产生一个范围在[-2^32,2^31)之间的随机数。
SQL> select dbms_random.random from dual;
    RANDOM
----------
 620661990
SQL> select dbms_random.random from dual;
    RANDOM
----------
 606573780
3、使用bms_random.value 产生一个范围在[0,1)之间精度为38位的随机数。或者生成指定范围之内的随机数。
SQL> select dbms_random.value from dual;
     VALUE
----------
.886022585
SQL> select dbms_random.value from dual;
     VALUE
----------
 .57996367
通过使用 dbms_random.value(x,y),产生范围在[x,y)之间的随机数。
SQL> select dbms_random.value(100,200) from dual;
DBMS_RANDOM.VALUE(100,200)
--------------------------
                110.185899
SQL> select dbms_random.value(100,200) from dual;
DBMS_RANDOM.VALUE(100,200)
--------------------------
                 128.20002
3、使用 dbms_random.string(opt,len) 生成opt 类型len 长度的随机字符串。
opt 参数有:
'u', 'U'表示大写字母字符串。
'l', 'L' 表示小写字母字符串。
'a', 'A' 表示大小写混合的字符串。
'x', 'X' 表示大写的数值字母字符串串。
'p', 'P' 表示任何的可打印字符。
SQL> select dbms_random.string('U',6) from dual;
DBMS_RANDOM.STRING('U',6)
-------------------------------------------------
YTWFUB
SQL> select dbms_random.string('U',6) from dual;
DBMS_RANDOM.STRING('U',6)
-------------------------------------------------
VOJIRA
SQL> select dbms_random.string('x',5) from dual;
DBMS_RANDOM.STRING('X',5)
-------------------------------------------------
UBEGV
SQL> select dbms_random.string('x',5) from dual;
DBMS_RANDOM.STRING('X',5)
-------------------------------------------------
D4T7J

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26110315/viewspace-722828/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26110315/viewspace-722828/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值