Oracle随机函数的用法

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

一、dbms_random.normalsql

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

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

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

二、dbms_random.random函数

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

三、dbms_random.value测试

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

SQL > select dbms_random.value from dual;

 

              VALUE

    -----------------------------------------

     0 .58983014999643548701631750396301271752

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

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

    注意:不管前面几位,小数点以后都是38位字符串

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

四、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
相关文章
相关标签/搜索