程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle隨機函數的正確取法的描述

Oracle隨機函數的正確取法的描述

編輯:Oracle數據庫基礎

假如你對Oracle隨機函數的基本概念不是很了解的話,下面的文章就是對Oracle隨機函數的相關內容的具體介紹,其實我個人認為Oracle隨機函數的取法很簡單,通過dbms_random包調用隨機數的方法大致有4種:

1、dbms_random.normal

這個函數不帶參數,能返回normal distribution的一個number類型,所以基本上隨機數會在-1到1之間。

簡單測試了一下,產生100000次最大能到5左右:

  1. SQL> declare  
  2. 2 i number:=0;  
  3. 3 j number:=0;  
  4. 4 begin  
  5. 5 for k in 1 .. 100000 loop  
  6. i:dbms_random.normal;  
  7. 7 if i > j  
  8. 8 then j:=i;  
  9. 9 end if;  
  10. 10 end loop;  
  11. 11 dbms_output.put_line(j);  
  12. 12 end;  
  13. 13 /  
  14. 5.15325081797418404136433867107468983182  
  15. PL/SQL procedure successfully completed  

2、dbms_random.random

這個也沒有參數,返回一個從-power(2,31)到power(2,31)的整數值

3、Oracle隨機函數的取法:dbms_random.value

這個函數分為兩種,一種是沒有參數,則直接返回0-1之間的38位小數

  1. SQL > column value format 9.99999999999999999999999999999999999999  
  2. SQL > select dbms_random.value from dual;  
  3. VALUE  
  4. .58983014999643548701631750396301271752  

第二種是加上兩個參數a、b,則返回值在a、b之間的38位小數

  1. SQL > column value format 999.999999999999999999999999999999999999  
  2. SQL > select dbms_random.value(100,500) value from dual;  
  3. VALUE  
  4. 412.150194612502916808701157054098274240  

注意:無論前面幾位,小數點之後都是38位

4、dbms_random.string

這個函數必須帶有兩個參數,前面的字符指定類型,後面的數值指定位數(最大60)

類型說明:

  1. 'u','U' : upper case alpha characters only  
  2. 'l','L' : lower case alpha characters only'a','A' : alpha characters only (mixed case)  
  3. 'x','X' : any alpha-numeric characters (upper)  
  4. 'p','P' : any printable characters  
  5. SQL > column value format a30  
  6. SQL > select dbms_random.string('u',30) value from dual;  
  7. VALUE   
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved