DBMS_RANDOM パッケージでは、乱数を生成するためのメソッドを提供しています。 次の表は、DBMS_RANDOM パッケージで使用可能な関数とストアドプロシージャを示しています。
関数/ストアドプロシージャ | 戻り値の型 | 説明 |
---|---|---|
INITIALIZE(val) | N/A | 指定したシード値を使って DBMS_RANDOM パッケージを初期化します。 後方互換性のみを目的としてサポートされており、推奨しません。 |
NORMAL() | NUMBER | NUMBER 型の乱数を返します。 |
RANDOM | INTEGER | -2^31 以上 2^31 未満の INTEGER 型の乱数。 後方互換性のみを目的としてサポートされており、推奨しません。 |
SEED(val) | N/A | 指定した値を使ってシード値を再設定します。 |
SEED(val) | N/A | 指定した値を使ってシード値を再設定します。 |
STRING(opt, len) | VARCHAR2 | ランダムな文字列を返します。 |
TERMINATE | N/A | 何もしません。 後方互換性のみを目的としてサポートされており、推奨しません。 |
VALUE | NUMBER | 38 桁の精度で、0 以上 1 未満の乱数を返します。 |
VALUE(low, high) | NUMBER | low で指定した値以上で high で指定した値未満の乱数を返します。 |
INITIALIZE
INITIALIZE(val IN INTEGER)
INITIALIZE ストアドプロシージャは、後方互換性のみを目的としてサポートされているため、推奨しません。
パラメーター
パラメーター | 説明 |
---|---|
val | DBMS_RANDOM パッケージアルゴリズムで使用するシード値。 |
例
次のコードスニペットは、シード値 6475 を使って DBMS_RANDOM パッケージを初期化する INITIALIZE ストアドプロシージャの呼び出しを示します。
DBMS_RANDOM.INITIALIZE(6475);
NORMAL
NORMAL 関数は、NUMBER 型の乱数を返します。 構文:
result NUMBER NORMAL()
パラメーター
パラメーター | 説明 |
---|---|
result | NUMBER 型の乱数を返します。 |
例
次のコードスニペットは、NORMAL 関数の呼び出しを示します。
x:= DBMS_RANDOM.NORMAL();
RANDOM
RANDOM 関数は、-2^31 以上 2^31 未満の INTEGER 型の乱数を返します。 構文:
result INTEGER RANDOM()
RANDOM 関数は、後方互換性のみを目的としてサポートされているため、推奨しません。
パラメーター
パラメーター | 説明 |
---|---|
result | INTEGER 型の乱数。 |
例
次のコードスニペットは、RANDOM 関数の呼び出しを示します。 この呼び出しは、乱数を返します。
x := DBMS_RANDOM.RANDOM();
SEED
SEED ストアドプロシージャは、文字列値を使って DBMS_RANDOM パッケージのシード値を再設定します。 構文:
SEED(val IN VARCHAR2)
パラメーター
パラメーター | 説明 |
---|---|
val | val パラメーターは、DBMS_RANDOM パッケージアルゴリズムで使用するシード値です。 |
例
次のコードスニペットは、SEED ストアドプロシージャの呼び出しを示しています。 この呼び出しは、シード値を abc123 に設定します。
DBMS_RANDOM.SEED('abc123');
STRING
STRING 関数は、VARCHAR2 文字列をユーザー指定の形式で返します。 構文:
result VARCHAR2 STRING(opt IN CHAR, len IN NUMBER)
パラメーター
opt
:返される文字列のフォーマットオプション。 次の表では、option
パラメーターで使用できる値を示しています。
オプション | 説明 |
---|---|
u または U | 英大文字列 |
l または L | 英小文字列 |
a または A | 英大文字・英小文字の混在文字列 |
x または X | 英大文字・数字の混在文字列 |
p または P | 印刷可能文字列 |
len
:返される文字列の長さです。
result
:result パラメーターは VARCHAR2 型のランダムな値です。
例
次のコードスニペットは、STRING 関数の呼び出しを示しています。 この呼び出しは、長さが 10 文字のランダムな英数字文字列を返します。
x := DBMS_RANDOM.STRING('X', 10);
TERMINATE
TERMINATE ストアドプロシージャは何もしません。 構文:
TERMINATE
後方互換性のみを目的としてサポートされているため、TERMINATE ストアプロシージャの使用は推奨しません。
VALUE
VALUE 関数は、38 桁の精度で、0 以上 1 未満の NUMBER 型の乱数を返します。 VALUE 関数には 2 つの形式があります。 1 つめの構文は次のとおりです。
result NUMBER VALUE()
パラメーター
パラメーター | 説明 |
---|---|
result | NUMBER 型の乱数。 |
例
次のコードスニペットは、VALUE 関数の呼び出しを示しています。 この呼び出しは、NUMBER 型の乱数を返します。
x := DBMS_RANDOM.VALUE();
VALUE
VALUE 関数は、ユーザー指定の範囲内の値を持つ NUMBER 型の乱数を返します。 VALUE 関数には 2 つの形式があります。 2 つめの構文は次のとおりです。
result NUMBER VALUE(low IN NUMBER, high IN NUMBER)
パラメーター
パラメーター | 説明 |
---|---|
low | 乱数の下限。 乱数の値は下限の値以上です。 |
high | 乱数の上限。 乱数の値は上限の値未満です。 |
result | NUMBER 型の乱数。 |
例
次のコードスニペットは、VALUE 関数の呼び出しを示しています。 この呼び出しは、1 以上 100 未満の値を持つ NUMBER 型の乱数を返します。
x := DBMS_RANDOM.VALUE(1, 100);