以下的文章主要介绍的是Oracle随机函数的正确取法,以及对通过dbms_random包调用的相关随机数的4方法的介绍,以下就是文章的具体内容描述。
假设你对Oracle随机函数的基本概念不是很了解的话,下面的文章便是对Oracle随机函数的相关内容的详细介绍,其实我个人认为Oracle随机函数的取法很简略,经过dbms_random包调用随机数的办法大致有4种:
1、dbms_random.normal
这个函数不带参数,能回来normal distribution的一个number类型,所以基本上随机数会在-1到1之间。
简略测试了一下,发生100000次***能到5左右:
- SQL>declare
- 2inumber:=0;
- 3jnumber:=0;
- 4begin
- 5forkin1..100000loop
- 6i:=dbms_random.normal;
- 7ifi>j
- 8thenj:=i;
- 9endif;
- 10endloop;
- 11dbms_output.put_line(j);
- 12end;
- 13/
- 5.15325081797418404136433867107468983182
- PL/SQLproceduresuccessfullycompleted
2、dbms_random.random
这个也没有参数,回来一个从-power(2,31)到power(2,31)的整数值
3、Oracle随机函数的取法:dbms_random.value
这个函数分为两种,一种是没有参数,则直接回来0-1之间的38位小数
- SQL>columnvalueformat9.99999999999999999999999999999999999999
- SQL>selectdbms_random.valuefromdual;
- VALUE
- .58983014999643548701631750396301271752
第二种是加上两个参数a、b,则回来值在a、b之间的38位小数
- SQL>columnvalueformat999.999999999999999999999999999999999999
- SQL>selectdbms_random.value(100,500)valuefromdual;
- VALUE
- 412.150194612502916808701157054098274240
留意:不管前面几位,小数点之后都是38位
4、dbms_random.string
这个函数有必要带有两个参数,前面的字符指定类型,后边的数值指定位数(***60)
类型阐明:
- 'u','U':uppercasealphacharactersonly
- 'l','L':lowercasealphacharactersonly'a','A':alphacharactersonly(mixedcase)
- 'x','X':anyalpha-numericcharacters(upper)
- 'p','P':anyprintablecharacters
- SQL>columnvalueformata30
- SQL>selectdbms_random.string('u',30)valuefromdual;
- VALUE
上述的相关内容便是对Oracle随机函数的取法的描绘,期望会给你带来一些协助在此方面。
【修改引荐】
- Oracle 10g的即时客户端与PHP的装置
- 装置Oracle 10g 在redhat linux 的正确计划
- Oracle数据库中的(+)衔接怎么操作?
- Oracle安全策略的实践用法
- Oracle存储过程中怎么精确的完成分页
转载请说明出处
知优网 » Oracle随机函数的正确取法的描绘(oracle取随机数的函数)
知优网 » Oracle随机函数的正确取法的描绘(oracle取随机数的函数)