Oracle隨機函數的用法

來源:互聯網
上載者:User

Oracle隨機函數的用法

簡單得說,Oracle 取隨機數,大多是通過調用dbms_random包產生,通過dbms_random包產生隨機數的方法大致有下面4種:
1、dbms_random.normal
這個函數不帶參數,用來產生一個介於-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指定產生的字串的樣式,允許的取值及其表示的含義如下表所示:

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.