简单得说,Oracle 取随机数,大多是通过调用dbms_random包产生,通过dbms_random包产生随机数的方法大致有下面4种: 1、dbms_random.normal 这个函数不带参数,用来产生一个介于-1到1之间的38位精度的随机数,能返回normal distribution的一个number类型,所以基本上随机数会在-1到1之间。 简单测试了一下,产生100000次最大能到5左右: SQL> select dbms_random.normal from dual; NORMAL -0.69403045775801368063448224595085800467832、dbms_random.random 这个也没有参数,返回一个从-power(2,31)到power(2,31) (--2的31次方)的整数值 3、dbms_random.value 这个函数分为两种,一种是没有参数,则直接返回0-1之间的38位精度的随机数 SQL > select dbms_random.value from dual;
VALUE
-----------------------------------------
0 .58983014999643548701631750396301271752 第二种是加上两个参数a、b,则返回值在a、b之间的38位精度的随机数 SQL > select dbms_random.value(100,500) value from dual; VALUE ----------------------------------------- 412.150194612502916808701157054098274240 注意:无论前面几位,小数点之后都是38位 此外,若想获得整数:ROUND(dbms_random.value(1,500),0) 4、dbms_random.string 该函数产生一个随机字符串,必须带有两个参数,语法为:dbms_random.string(opt in CHAR,len in NUMBER) 参数len指定生成的字符串的长度(最大60); 参数opt指定生成的字符串的样式,允许的取值及其表示的含义如下表所示:更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12本文永久更新链接地址