DBMS_RANDOMパッケージは、ランダム値を生成するためのいくつかのメソッドを提供します。
次の表に、DBMS_RANDOMパッケージで使用できる関数とストアドプロシージャを示します。
| 関数またはストアドプロシージャ | 戻り値タイプ | 説明 |
| INITIALIZE(val) | N/A | 指定されたシード値でDBMS_RANDOMパッケージを初期化します。 非推奨であり、下位互換性のためにのみ含まれます。 |
| NORMAL() | NUMBER | NUMBER 型の乱数を返します。 |
| RANDOM | INTEGER | -2^31 以上 2^31 未満の INTEGER 型の乱数。 非推奨であり、下位互換性のためにのみ含まれます。 |
| SEED(val) | N/A | DBMS_RANDOMパッケージのシードを文字列値でリセットします。 |
| STRING(opt, len) | VARCHAR2 | ランダムなVARCHAR2文字列をカスタム形式で返します。 |
| TERMINATE | N/A | DBMS_RANDOMパッケージを終了します。 非推奨であり、下位互換性のためにのみ含まれます。 |
| VALUE | NUMBER | NUMBER 型の乱数を返します。 値は0以上1未満で、精度は38桁でなければなりません。 |
| VALUE(low, high) | NUMBER | 低以上かつ高未満のランダムなNUMBERを返します。 |
INITIALIZE
DBMS_RANDOMパッケージをシード値で初期化するために使用されるINITIALIZEストアドプロシージャ。 構文: INITIALIZE(val IN INTEGER)| パラメーター | 説明 |
| val | DBMS_RANDOMパッケージで使用されるシード値。 |
次のブロックは、
DBMS_RANDOMパッケージをシード値6475で初期化するINITIALIZEストアドプロシージャの呼び出しを示しています。 DBMS_RANDOM.INITIALIZE(6475);NORMAL
NORMAL関数は、ランダムなNUMBERを返すために使用されます。 構文: result NUMBER NORMAL() パラメータ| パラメーター | 説明 |
| result | NUMBER型のランダムな値。 |
x:= DBMS_RANDOM.NORMAL();RANDOM
RANDOM関数は、-2A31以上2A31未満のランダムINTEGERを返すために使用されます。 構文: result INTEGER RANDOM() パラメーター| パラメーター | 説明 |
| result | INTEGER型のランダムな値。 |
x := DBMS_RANDOM.RANDOM();SEED
SEEDストアドプロシージャは、文字列値を使用して
例DBMS_RANDOMパッケージのシード値をリセットするために使用されます。 構文: SEED(val IN VARCHAR2) パラメーター| パラメーター | 説明 |
| val | DBMS_RANDOMパッケージで使用されるシード値。 |
次のブロックは、abc123のシード値を使用するSEEDストアドプロシージャの呼び出しを示しています。
DBMS_RANDOM.SEED('abc123');STRING
STRING関数は、ランダムなVARCHAR2文字列をカスタム形式で返すために使用されます。 構文: result VARCHAR2 STRING(opt IN CHAR, len IN NUMBER) リクエストパラメーター| パラメーター | 説明 |
| opt | 返された文字列の形式。 有効な値:
|
| len | 返される文字列の長さ。 |
| パラメーター | 説明 |
| result | VARCHAR2型のランダムな文字列。 |
次のブロックは、長さが10文字のランダムな英数字文字列を返す
STRING関数の呼び出しを示しています。 x := DBMS_RANDOM.STRING('X', 10);TERMINATE
TERMINATEストアドプロシージャは、DBMS_RANDOMパッケージを終了するために使用されます。 構文: TERMINATEVALUE
VALUE関数は、ランダムなNUMBERを返すために使用されます。 ランダム値は0以上1未満で、精度は38桁です。 または、ランダム値が指定された境界内に入ります。 VALUE関数には、次の2つの構文形式があります。
結果の数値値 (低の数値、高の数値); リクエストパラメータ| パラメーター | 説明 |
| low | ランダムな値の下限を指定します。 ランダム値は低に等しくてもよい。 |
| high | ランダムな値の上限を指定します。 ランダム値はhigh未満でなければなりません。 |
| パラメーター | 説明 |
| result | NUMBER型のランダムな値。 |
x := DBMS_RANDOM.VALUE(1, 100);