Oracle随机函数的用法-创新互联

简单得说,Oracle 取随机数,大多是通过调用dbms_random包产生,通过dbms_random包产生随机数的方法大致有下面4种:

1、dbms_random.normal

创新互联建站-专业网站定制、快速模板网站建设、高性价比衡南网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式衡南网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖衡南地区。费用合理售后完善,十余年实体公司更值得信赖。

这个函数不带参数,用来产生一个介于-1到1之间的38位精度的随机数,能返回normal distribution的一个number类型,所以基本上随机数会在-1到1之间。

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

SQL> select dbms_random.normal from dual;    NORMAL -0.6940304577580136806344822459508580046783

2、dbms_random.random

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

3、dbms_random.value

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

SQL > select dbms_random.value from dual;                 VALUE     -----------------------------------------      0 .58983014999643548701631750396301271752

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

    SQL > select dbms_random.value(100,500) value from dual;                   VALUE     -----------------------------------------       412.150194612502916808701157054098274240

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

    此外,若想获得整数:ROUND(dbms_random.value(1,500),0)

4、dbms_random.string

该函数产生一个随机字符串,必须带有两个参数,语法为:dbms_random.string(opt in CHAR,len in NUMBER)

参数len指定生成的字符串的长度(大60);

参数opt指定生成的字符串的样式,允许的取值及其表示的含义如下表所示:

取值

含义

‘u’或’U’

返回一个由大写字母组成的字符串

‘l’或’L’

返回一个由小写字母组成的字符串

‘a’或’A’

返回一个由大写字母和小写字母组成的字符串

‘x’或’X’

返回一个由大写字母和数字组成的字符串

‘p’或’P’

返回一个由任意的可打印字符组成的字符串

例如:要产生一个长度为6且只包括大写字母的字符串,可以这样写: DBMS_RANDOM.STRING('U',6)

SQL> SELECT DBMS_RANDOM.string ('U', 6) FROM DUAL;         DBMS_RANDOM.STRING('U',6)      --------------------------------------         ECQALV

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站标题:Oracle随机函数的用法-创新互联
URL网址:http://pwwzsj.com/article/psspi.html