1818IP-服务器技术教程,云服务器评测推荐,服务器系统排错处理,环境搭建,攻击防护等

当前位置:首页 - 数据库 - 正文

君子好学,自强不息!

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

2022-11-22 | 数据库 | 1818ip | 578°c
A+ A-

假如你对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 

本文来源:1818IP

本文地址:https://www.1818ip.com/post/10965.html

免责声明:本文由用户上传,如有侵权请联系删除!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。