DBMS_RANDOM內建包提供了內建的隨機數產生器。
DBMS_RANDOM子程式總覽
子程式 | 說明 |
INITIALIZE Procedure | 使用指定的種子初始化DBMS_RANDOM包。 |
NORMAL Function | 返回一個滿足常態分佈的隨機數。 |
RANDOM Function | 返回一個INTEGER類型的隨機數。 |
SEED Procedures | 重設DBMS_RANDOM包種子值。 |
STRING Function | 返回使用者指定形式的一個隨機VARCHAR2類型字串。 |
TERMINATE Procedure | 終止包的使用。 |
VALUE Functions | 返回一個指定範圍內的NUMBER類型的隨機數。 |
INITIALIZE Procedure
該預存程序使用指定的種子初始化DBMS_RANDOM包。
文法
DBMS_RANDOM.INITIALIZE(val IN INTEGER);參數說明
參數 | 說明 |
val | 用於產生隨機數的指定種子值。 |
樣本
該樣本展示了如何用指定的數字初始化DBMS_RANDOM的種子值。
EXEC DBMS_RANDOM.INITIALIZE(100);NORMAL Function
該函數用於返回一個NUMBER類型的滿足常態分佈的隨機數。
文法
DBMS_RANDOM.NORMAL() RETURN NUMBER;傳回值
傳回值 | 說明 |
NUMBER | 滿足常態分佈的隨機數。 |
樣本
該樣本展示了如何擷取一個滿足常態分佈的隨機數。
SELECT DBMS_RANDOM.NORMAL() FROM DUAL;
normal
----------------------
-0.48004454788674555
(1 row)RANDOM Function
該函數用於返回一個INTEGER類型的隨機數。
文法
DBMS_RANDOM.RANDOM RETURN INTEGER;傳回值
傳回值 | 說明 |
INTEGER | 返回的隨機整數。 |
樣本
該樣本展示了如何擷取一個隨機整數。
SELECT DBMS_RANDOM.RANDOM() FROM DUAL;
random
------------
1078289776
(1 row)SEED Procedures
該預存程序用於重設種子值。
文法
DBMS_RANDOM.SEED(val IN INTEGER);
DBMS_RANDOM.SEED(val IN VARCHAR2);參數說明
參數 | 說明 |
val | INTEGER或者VARCHAR類型的輸入值,用於指定新的種子值。 |
樣本
該樣本展示了如何使用該預存程序重設種子值。
EXEC DBMS_RANDOM.SEED(1);
EXEC DBMS_RANDOM.SEED('test seed');STRING Function
該函數用於返回使用者指定形式的一個隨機VARCHAR2類型字串。
文法
DBMS_RANDOM.STRING(
opt IN CHAR,
len IN NUMBER)
RETURN VARCHAR2;參數說明
參數 | 說明 |
opt | 傳回值的格式化選項。取值如下:
|
len | 傳回值的長度。 |
傳回值
傳回值 | 說明 |
VARCHAR2 | 返回的隨機字串。 |
樣本
該樣本展示了如何擷取一個指定格式的隨機字串。
SELECT DBMS_RANDOM.STRING('X', 10) FROM DUAL;
string
------------
MD6LDO7JLJ
(1 row)TERMINATE Procedure
該預存程序用於終止DBMS_RANDOM包的使用。
文法
DBMS_RANDOM.TERMINATE();樣本
EXEC DBMS_RANDOM.TERMINATE;VALUE Functions
該函數用於返回一個指定範圍內的NUMBER類型的隨機數。
文法
DBMS_RANDOM.VALUE() RETURN NUMBER;
DBMS_RANDOM.VALUE(
low IN NUMBER,
high IN NUMBER)
RETURN NUMBER;參數說明
參數 | 說明 |
low | 指定產生的隨機數的下邊界。隨機數大於等於low。 |
high | 指定產生的隨機數的上邊界。隨機數小於high。 |
傳回值
傳回值 | 說明 |
NUMBER | 返回的隨機數。 |
樣本
該樣本展示了如何擷取指定範圍內的隨機數。
SELECT DBMS_RANDOM.VALUES(0.0, 10) FROM DUAL;
value
-------------------
8.401877167634666
(1 row)