1.dbms_random.value方法
dbms_random是一個可以生成隨機數值或者字符串的程序包。這個包有initialize()、seed()、terminate()、value()、normal()、random()、string()等幾個函數,但value()是最常用的,value()的用法一般有兩個種,第一
function value return number;
這種用法沒有參數,會返回一個具有38位精度的數值,范圍從0.0到1.0,但不包括1.0,如下示例:
SQL> set serverout on
SQL> begin
46
19
45
37
33
57
61
20
82
8
PL/SQL 過程已成功完成。
SQL>
第二種value帶有兩個參數,第一個指下限,第二個指上限,將會生成下限到上限之間的數字,但不包含上限,“學無止境”兄說的就是第二種,如下:
SQL> begin
97
77
13
86
68
16
55
36
54
46
PL/SQL 過程已成功完成。
2. dbms_random.string 方法
某些用戶管理程序可能需要為用戶創建隨機的密碼。使用10G下的dbms_random.string 可以實現這樣的功能。
這條語句功能是實現記錄的隨機排序
另外:
dbms_random.value 和
dbms_random.random 兩者之間有什么區別?
1。Order By dbms_random.value ,為結果集的每一行計算一個隨機數,dbms_random.value 是結果集的一個列(雖然這個列并不在select list 中),然后根據該列排序,得到的順序自然就是隨機的啦。
2。看看desc信息便知道vlue和random這兩個函數的區別了,value返回的是number類型,tb并且返回的值介于1和0之間,而random返回的是BINARY_INTEGER類型(以二進制形式存儲的數字,據說運算的效率高于number但我沒測試過,但取值范圍肯定小于number,具體限制得查資料了)
如果你要實現隨機排序,還是用value函數吧
4. dbms_random.normal方法
NORMAL函數返回服從正態分布的一組數。此正態分布標準偏差為1,期望值為0。這個函數返回的數值中有68%是介于-1與+1之間,95%介于-2與+2之間,99%介于-3與+3之間。
5. dbms_random.send方法
用于生成一個隨機數種子,設置種子的目的是可以重復生成隨機數,用于調試。否則每次不同,難以調度。
借助別人的力量,我將走得更遠。