龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > Oracle 技术 >

Oracle随机函数的正确取法的描述

时间:2011-04-12 23:18来源:未知 作者:admin 点击:
分享到:
假如你对 Oracle 随机函数的基本概念不是很了解的话,下面的文章就是对Oracle随机函数的相关内容的具体介绍,其实我个人认为Oracle随机函数的取法很简单,通过dbms_random包调用随机数的

假如你对Oracle随机函数的基本概念不是很了解的话,下面的文章就是对Oracle随机函数的相关内容的具体介绍,其实我个人认为Oracle随机函数的取法很简单,通过dbms_random包调用随机数的方法大致有4种:

1、dbms_random.normal

这个函数不带参数,能返回normal distribution的一个number类型,所以基本上随机数会在-1到1之间。

简单测试了一下,产生100000次最大能到5左右:

  1. SQL> declare  
  2. 2 i number:=0;  
  3. 3 j number:=0;  
  4. 4 begin  
  5. 5 for k in 1 .. 100000 loop  
  6. i:dbms_random.normal;  
  7. 7 if i > j  
  8. 8 then j:=i;  
  9. 9 end if;  
  10. 10 end loop;  
  11. 11 dbms_output.put_line(j);  
  12. 12 end;  
  13. 13 /  
  14. 5.15325081797418404136433867107468983182  
  15. PL/SQL procedure successfully completed  

2、dbms_random.random

这个也没有参数,返回一个从-power(2,31)到power(2,31)的整数值

3、Oracle随机函数的取法:dbms_random.value

这个函数分为两种,一种是没有参数,则直接返回0-1之间的38位小数

  1. SQL > column value format 9.99999999999999999999999999999999999999  
  2. SQL > select dbms_random.value from dual;  
  3. VALUE  
  4. .58983014999643548701631750396301271752  

第二种是加上两个参数a、b,则返回值在a、b之间的38位小数

  1. SQL > column value format 999.999999999999999999999999999999999999  
  2. SQL > select dbms_random.value(100,500) value from dual;  
  3. VALUE  
  4. 412.150194612502916808701157054098274240  

注意:无论前面几位,小数点之后都是38位

4、dbms_random.string

这个函数必须带有两个参数,前面的字符指定类型,后面的数值指定位数(最大60)

类型说明:

  1. 'u','U' : upper case alpha characters only  
  2. 'l','L' : lower case alpha characters only'a','A' : alpha characters only (mixed case)  
  3. 'x','X' : any alpha-numeric characters (upper)  
  4. 'p','P' : any printable characters  
  5. SQL > column value format a30  
  6. SQL > select dbms_random.string('u',30) value from dual;  
  7. VALUE   

上述的相关内容就是对Oracle随机函数的取法的描述,希望会给你带来一些帮助在此方面。

精彩图集

赞助商链接