Oracle的随机数dbms_random包

简单来说,有dbms_random包通过电话随机数大致有4种。

1、dbms_random.normal

这个函数没有参数,可以返回到正态分布的数字类型,所以基本上随机数将介于1和1之间。

简单的测试。最大能量为100000倍,约为5。

SQL代码


声明
i编号:=;
j数=;
开始
在…环
我:= dbms_random.normal;
如果我
那么J =我;
最后如果;
结束循环;
dbms_output.put_line(J);
结束;


5.15325081797418404136433867107468983182

已成功完成

2、dbms_random.random

这不有一个参数,并返回一个整型值的功率(2,31)功率(2,31)

3、dbms_random.value

这个函数分为两种,一种是没有参数,然后直接返回到38位小数之间的> = 0和< 1。




SQL值格式9.99999999999999999999999999999999999999 >栏目
从双> SQL dbms_random.value选择;

价值
-----------------------------------------
58983014999643548701631750396301271752。


第二个是在a和a之间加上两个参数A和B的返回值的38位十进制值。


SQL值格式999.999999999999999999999999999999999999 >栏目
SQL >选择dbms_random.value(100500)值从双;
价值
-----------------------------------------
412.150194612502916808701157054098274240


注:不管前几位,小数点是38。



你可以使用trunc()函数的积分

4、dbms_random.string

函数必须有两个参数,前一个字符指定类型,以及指定数字之后的数字(最大值为60)。

类型描述:




U,U:大写字母字符只
L,L小写字母字符只有:
A,A:阿尔法字符(混合)
‘X',‘X':任何字母数字字符(上)
p,p':任何可打印的字符

SQL >列值格式A30
SQL >选择dbms_random.string(U,30)的值从双;
价值
这个
vtqnlgiselpxedbxkuzlxkbajmutia

SQL >选择dbms_random.string(L,30)的值从双;
价值
这个
uqygsbquingfqdytpgjvdoblxeglgu

SQL >选择dbms_random.string(A,30)的值从双;
价值
这个
ngtgkqypuswhbfcrhiolqwouxkqjjy

SQL >选择dbms_random.string(x,30)的值从双;
价值
这个
uvwonyjmxt31vefpd736wjcj5qt6bd

SQL >选择dbms_random.string('p',30)的值从双;
价值
这个
Mak $(wt4m_7c / + F { _xuscf $ P ZCQ {)




5。关于种子

可以设置种子以确定随机数的起始点。对于同一种子,随机数中的任何变化都将被确定。

也就是说,如果我们在一定时间内调用种子,第一个随机数是4,第二次是6,第三次是1。当再次调用同一种子时,随机生成的数目为4, 6, 1。

有两种种子。一个是数字,另一个是字符类型(最大长度为2000)。


具有二进制整数的种子
程序的种子(Val binary_integer);
语用restrict_references(种子,wnds);

-种子与字符串(长度为2000)
程序的种子(瓦迩空);
语用restrict_references(种子,wnds);


6。关于初始化

整数参数,注释非常清晰:




-过时的,只是调用种子(缬氨酸)
程序初始化(Val binary_integer);
语用restrict_references(初始化,wnds);


这篇文章给你的神谕的随机数dbms_random包,希望对你有帮助学习Oracle的随机数。