ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 在oracle 中生成随机数

在oracle 中生成随机数

原创 Linux操作系统 作者:pingley 时间:2012-05-06 15:35:28 0 删除 编辑
在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/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 关于yum lock
请登录后发表评论 登录
全部评论

注册时间:2012-02-06

  • 博文量
    169
  • 访问量
    720956