Oracle隨機數產生函數可以回0-1之間的隨機數,該函數有很好的實用價值,下面就讓我們來一同了解一下Oracle隨機數產生函數的用法。
Oracle8 8.0版介紹了DBMS_RANDOM包,Oracle8i 8.1.6版介紹了DBMS_RANDOM包的新功能,但Oracle8i 文檔中沒有詳細全面介紹其功能。幸運的是:有一個新的DBMS_RANDOM包函數能夠返回0-1之間的隨機數。這個新Oracle隨機數產生函數是:
◆ FUNCTION value RETURN NUMBER;
◆ FUNCTION value (low IN NUMBER, high IN NUMBER) RETURN NUMBER;
◆ FUNCTION normal RETURN NUMBER;
◆ FUNCTION string (opt char, len NUMBER) RETURN VARCHAR2;
VALUE函數的第一種形式返回一個大於或等於0且小於1的隨機數;第二種形式返回一個大於或等於LOW,小於HIGH的隨機數。下面是其用法的一個示例:
- SQL> select dbms_random.value, dbms_random.value(55,100) from dual;
- VALUE DBMS_RANDOM.VALUE(55,100)
- --------------- -----------------------------
- .782821936 79.6367038
NORMAL函數返回服從正態分布的一組數。此正態分布標准偏差為1,期望值為0。這個函數返回的數值中有68%是介於-1與+1之間,95%介於-2與+2之間,99%介於-3與+3之間。事實上,這就是你在清單1中所看到的。
最後,是STRING函數。它返回一個長度達60個字符的隨機字符串。參數OPT可以是清單2顯示的值中的任何一個單個字符。
關於這些Oracle隨機數產生函數及DBMS_RANDOM包的文件都包含在SQLPlus中:
- select text from all_source
- where name = 'DBMS_RANDOM'
- and type = 'PACKAGE' order by line;