Oracle8 8.0版介紹了DBMS_RANDOM包,Oracle8i 8.1.6版介紹了
DBMS_RANDOM包的新功能,但Oracle8i 文件中沒有詳細全面介紹其功能。幸運
的是:有一個新的DBMS_RANDOM包函式能夠返回0-1之間的隨機數。這個新函式是:
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)
2 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顯示的值中的任何一個單個字元。
關於這些函式及DBMS_RANDOM包的檔案都包含在SQLPlus中:
select text
from all_source
where name = 'DBMS_RANDOM'
and type = 'PACKAGE' order by line;