DBMS_RANDOM
包提供了可以产生随机值的方法。
下表列出了DBMS_RANDOM
包中可以使用的函数及存储过程。
函数/存储过程 | 返回类型 | 描述 |
---|
函数/存储过程 | 返回类型 | 描述 |
---|---|---|
INITIALIZE(val) | N/A | 使用指定的种子值初始化DBMS_RANDOM 随机包。已弃用,但支持向后兼容。
|
NORMAL() | NUMBER | 返回一个NUMBER类型的随机数。 |
RANDOM | INTEGER | 返回的是一个INTEGER类型的随机数,它大于或等于-2 A31且小于2 A31。已弃用,但支持向后兼容。 |
SEED(val) | N/A | 用一个字符串值重置DBMS_RANDOM 包种子值。
|
STRING(opt, len) | VARCHAR2 | 返回的是用户指定形式的一个随机VARCHAR2字符串。 |
TERMINATE | N/A | 用于终止包。已弃用,但支持向后兼容。 |
VALUE | NUMBER | 返回一个NUMBER类型的随机值。返回的随机值大于或等于0且小于1,数字精度为38。 |
VALUE(low, high) | NUMBER | 返回一个介于指定边界之间的NUMBER类型的随机值。 |
INITIALIZE
INITIALIZE
存储过程使用一个指定的种子值初始化DBMS_RANDOM
包。语法如下:
INITIALIZE(val IN INTEGER)
参数名称 | 描述 |
---|
参数名称 | 描述 |
---|---|
val | DBMS_RANDOM 包使用的种子值。
|
下列代码段调用
INITIALIZE
存储过程,使用种子值6475对DBMS_RANDOM
包进行初始化。
DBMS_RANDOM.INITIALIZE(6475);
NORMAL
NORMAL
函数返回一个NUMBER类型的随机数。语法如下:
result NUMBER NORMAL()
参数名称 | 描述 |
---|
参数名称 | 描述 |
---|---|
result | 一个NUMBER类型的随机数。 |
x:= DBMS_RANDOM.NORMAL();
RANDOM
RANDOM
函数返回的是一个INTEGER类型的随机数,它大于或等于-2 A31且小于2 A31。语法如下:
result INTEGER RANDOM()
参数名称 | 描述 |
---|
参数名称 | 描述 |
---|---|
result | 一个INTEGER类型的随机数。 |
x := DBMS_RANDOM.RANDOM();
SEED
通过SEED存储过程的第二种形式,您可以使用一个字符串值重置
参数
示例DBMS_RANDOM
包种子值。语法如下:
SEED(val IN VARCHAR2)
参数名称 | 描述 |
---|
参数名称 | 描述 |
---|---|
val | DBMS_RANDOM 包算法使用的种子值。
|
下列代码段调用SEED存储过程,调用时将种子值设为abc123:
DBMS_RANDOM.SEED('abc123');
STRING
STRING
函数返回的是用户指定形式的一个随机VARCHAR2字符串。语法如下:
result VARCHAR2 STRING(opt IN CHAR, len IN NUMBER)
参数名称 | 描述 |
---|
参数名称 | 描述 |
---|---|
opt | 返回的字符串的格式化选项。可选项如下:
|
len | 返回的字符串长度。 |
参数名称 | 描述 |
---|
参数名称 | 描述 |
---|---|
result | 返回的一个VARCHAR2类型的随机字符串。 |
下列代码段调用
STRING
函数。返回的是一个随机字母数字式的字符串,长度为10个字符。
x := DBMS_RANDOM.STRING('X', 10);
TERMINATE
TERMINATE
存储过程用于终止包。语法如下:
TERMINATE
VALUE
VALUE
函数返回的是一个NUMBER类型的随机值。返回的随机值大于或等于0且小于1,数字精度为38。或者返回一个介于指定边界之间的NUMBER类型的随机值。VALUE
函数有两种形式,语法为:
result NUMBER VALUE();
result NUMBER VALUE(low IN NUMBER, high IN NUMBER);
参数名称 | 描述 |
---|
参数名称 | 描述 |
---|---|
low | 指定随机值的下边界。这个随机值可能等于low 。
|
high | 指定随机值的上边界。这个随机值将会小于high 。
|
参数名称 | 描述 |
---|
参数名称 | 描述 |
---|---|
result | 一个NUMBER类型的随机值。 |
x := DBMS_RANDOM.VALUE();
x := DBMS_RANDOM.VALUE(1, 100);