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

假如你对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. 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随机函数的取法的描述,希望会给你带来一些帮助在此方面。

网页标题:Oracle随机函数的正确取法的描述
网站路径:http://www.shufengxianlan.com/qtweb/news24/3824.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联