DBMS_RANDOM v13
The DBMS_RANDOM package provides a number of methods to generate random values. The procedures and functions available in the DBMS_RANDOM package are listed in the following table.
| Function/Procedure | Return Type | Description |
|---|---|---|
INITIALIZE(val) | n/a | Initializes the DBMS_RANDOM package with the specified seed value. Deprecated, but supported for backward compatibility. |
NORMAL() | NUMBER | Returns a random NUMBER. |
RANDOM | INTEGER | Returns a random INTEGER with a value greater than or equal to -2^31 and less than 2^31. Deprecated, but supported for backward compatibility. |
SEED(val) | n/a | Resets the seed with the specified value. |
SEED(val) | n/a | Resets the seed with the specified value. |
STRING(opt, len) | VARCHAR2 | Returns a random string. |
TERMINATE | n/a | TERMINATE has no effect. Deprecated, but supported for backward compatibility. |
VALUE | NUMBER | Returns a random number with a value greater than or equal to 0 and less than 1, with 38 digit precision. |
VALUE(low, high) | NUMBER | Returns a random number with a value greater than or equal to low and less than high. |
INITIALIZE
The INITIALIZE procedure initializes the DBMS_RANDOM package with a seed value. The signature is:
INITIALIZE(<val> IN INTEGER)
This procedure should be considered deprecated; it is included for backward compatibility only.
Parameters
val
val is the seed value used by the DBMS_RANDOM package algorithm.
Example
The following code snippet demonstrates a call to the INITIALIZE procedure that initializes the DBMS_RANDOM package with the seed value, 6475.
DBMS_RANDOM.INITIALIZE(6475);
NORMAL
The NORMAL function returns a random number of type NUMBER. The signature is:
<result> NUMBER NORMAL()
Parameters
result
result is a random value of type NUMBER.
Example
The following code snippet demonstrates a call to the NORMAL function:
x:= DBMS_RANDOM.NORMAL();
RANDOM
The RANDOM function returns a random INTEGER value that is greater than or equal to -2 ^31 and less than 2 ^31. The signature is:
<result> INTEGER RANDOM()
This function should be considered deprecated; it is included for backward compatibility only.
Parameters
result
result is a random value of type INTEGER.
Example
The following code snippet demonstrates a call to the RANDOM function. The call returns a random number:
x := DBMS_RANDOM.RANDOM();
SEED
The first form of the SEED procedure resets the seed value for the DBMS_RANDOM package with an INTEGER value. The SEED procedure is available in two forms; the signature of the first form is:
SEED(<val> IN INTEGER)
Parameters
val
val is the seed value used by the DBMS_RANDOM package algorithm.
Example
The following code snippet demonstrates a call to the SEED procedure; the call sets the seed value at 8495.
DBMS_RANDOM.SEED(8495);
SEED
The second form of the SEED procedure resets the seed value for the DBMS_RANDOM package with a string value. The SEED procedure is available in two forms; the signature of the second form is:
SEED(<val> IN VARCHAR2)
Parameters
val
val is the seed value used by the DBMS_RANDOM package algorithm.
Example
The following code snippet demonstrates a call to the SEED procedure; the call sets the seed value to abc123.
DBMS_RANDOM.SEED('abc123');STRING
The STRING function returns a random VARCHAR2 string in a user-specified format. The signature of the STRING function is:
<result> VARCHAR2 STRING(<opt> IN CHAR, <len> IN NUMBER)
Parameters
opt
Formatting option for the returned string. option may be:
| Option | Specifies Formatting Option |
|---|---|
u or U | Uppercase alpha string |
l or L | Lowercase alpha string |
a or A | Mixed case string |
x or X | Uppercase alpha-numeric string |
p or P | Any printable characters |
len
The length of the returned string.
result
result is a random value of type VARCHAR2.
Example
The following code snippet demonstrates a call to the STRING function; the call returns a random alpha-numeric character string that is 10 characters long.
x := DBMS_RANDOM.STRING('X', 10);TERMINATE
The TERMINATE procedure has no effect. The signature is:
TERMINATE
The TERMINATE procedure should be considered deprecated; the procedure is supported for compatibility only.
VALUE
The VALUE function returns a random NUMBER that is greater than or equal to 0, and less than 1, with 38 digit precision. The VALUE function has two forms; the signature of the first form is:
<result> NUMBER VALUE()
Parameters
result
result is a random value of type NUMBER.
Example
The following code snippet demonstrates a call to the VALUE function. The call returns a random NUMBER:
x := DBMS_RANDOM.VALUE();
VALUE
The VALUE function returns a random NUMBER with a value that is between user-specified boundaries. The VALUE function has two forms; the signature of the second form is:
<result> NUMBER VALUE(<low> IN NUMBER, <high> IN NUMBER)
Parameters
low
low specifies the lower boundary for the random value. The random value may be equal to low.
high
high specifies the upper boundary for the random value; the random value will be less than high.
result
result is a random value of type NUMBER.
Example
The following code snippet demonstrates a call to the VALUE function. The call returns a random NUMBER with a value that is greater than or equal to 1 and less than 100:
x := DBMS_RANDOM.VALUE(1, 100);