帶您深入了解Oracle隨機(jī)數(shù)產(chǎn)生函數(shù)
Oracle隨機(jī)數(shù)產(chǎn)生函數(shù)可以回0-1之間的隨機(jī)數(shù),該函數(shù)有很好的實用價值,下面就讓我們來一同了解一下Oracle隨機(jī)數(shù)產(chǎn)生函數(shù)的用法。
Oracle8 8.0版介紹了DBMS_RANDOM包,Oracle8i 8.1.6版介紹了DBMS_RANDOM包的新功能,但Oracle8i 文檔中沒有詳細(xì)全面介紹其功能。幸運的是:有一個新的DBMS_RANDOM包函數(shù)能夠返回0-1之間的隨機(jī)數(shù)。這個新Oracle隨機(jī)數(shù)產(chǎn)生函數(shù)是:
◆ 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函數(shù)的***種形式返回一個大于或等于0且小于1的隨機(jī)數(shù);第二種形式返回一個大于或等于LOW,小于HIGH的隨機(jī)數(shù)。下面是其用法的一個示例:
- SQL> select dbms_random.value, dbms_random.value(55,100) from dual;
- VALUE DBMS_RANDOM.VALUE(55,100)
- --------------- -----------------------------
- .782821936 79.6367038
NORMAL函數(shù)返回服從正態(tài)分布的一組數(shù)。此正態(tài)分布標(biāo)準(zhǔn)偏差為1,期望值為0。這個函數(shù)返回的數(shù)值中有68%是介于-1與+1之間,95%介于-2與+2之間,99%介于-3與+3之間。事實上,這就是你在清單1中所看到的。
***,是STRING函數(shù)。它返回一個長度達(dá)60個字符的隨機(jī)字符串。參數(shù)OPT可以是清單2顯示的值中的任何一個單個字符。
關(guān)于這些Oracle隨機(jī)數(shù)產(chǎn)生函數(shù)及DBMS_RANDOM包的文件都包含在SQLPlus中:
- select text from all_source
- where name = 'DBMS_RANDOM'
- and type = 'PACKAGE' order by line;
【編輯推薦】