DBMS_RANDOM
パッケージは、組込み式の乱数ジェネレータを提供します。
この章の内容は次のとおりです。
注意: DBMS_RANDOM は暗号化に使用するものではありません。 |
RANDOM
ファンクションは、[-2^^31, 2^^31)の範囲の整数を生成します。
VALUE
ファンクションは[0,1)の範囲の数を生成し、精度は38桁です。
DBMS_RANDOM
は明示的に初期化できますが、乱数ジェネレータをコールする前に初期化する必要はありません。明示的な初期化が行われない場合は、日付、ユーザーIDおよびプロセスIDで自動的に初期化されます。
このパッケージを、同じシードを使用して2回シードしてから同じ方法でアクセスした場合、2回とも同じ結果が生成されます。
テストなどのように、すべての実行で乱数のシーケンスが同じになる必要のある場合があります。その場合は、SEED
のオーバーロードをコールして、ジェネレータを一定の値でシードします。各実行時の出力を変える場合は、単にシードのコールを省略します。これにより、システムによって適切なシードが選択されます。
表6-1 DBMS_RANDOMパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
|
シード値を使用して、パッケージを初期化します。 |
|
正規分布の乱数を戻します。 |
|
乱数を生成します。 |
|
シードをリセットします。 |
|
ランダム文字列を取得します。 |
|
パッケージを終了します。 |
|
あるバージョンは、0以上1未満で小数点以下38桁(精度38桁)の乱数を取得します。他のバージョンでは、ランダムなOracle Databaseの数値 |
注意: INITIALIZEプロシージャ、RANDOMファンクションおよびTERMINATEプロシージャは非推奨になりました。今回のリリースに含まれているのは、下位互換性を保つという理由にすぎません。 |
注意:
|
このプロシージャの使用は推奨されていません。現在はサポートされていますが、使用しないことをお薦めします。これは乱数ジェネレータを初期化します。
構文
DBMS_RANDOM.INITIALIZE (
val IN BINARY_INTEGER);
パラメータ
使用上の注意
このプロシージャはSEEDプロシージャのコールのみを行うもので、今後サポートされません。
このファンクションは、標準正規分布の乱数を戻します。
構文
DBMS_RANDOM.NORMAL RETURN NUMBER;
戻り値
乱数のNUMBER
値
このプロシージャの使用は推奨されていません。現在はサポートされていますが、使用しないことをお薦めします。これは乱数を生成して戻します。
構文
DBMS_RANDOM.RANDOM RETURN binary_integer;
戻り値
-power(2,31)
以上power(2,31)
未満のランダムBINARY_INTEGER
値
使用上の注意
「NORMALファンクション」および「VALUEファンクション」を参照してください。
このプロシージャは、乱数の生成に使用されるシードをリセットします。
構文
DBMS_RANDOM.SEED ( val IN BINARY_INTEGER); DBMS_RANDOM.SEED ( val IN VARCHAR2);
パラメータ
使用上の注意
シードには2000までの長さの文字列を使用できます。
このファンクションは、ランダムな文字列を生成して戻します。
構文
DBMS_RANDOM.STRING opt IN CHAR, len IN NUMBER) RETURN VARCHAR2;
パラメータ
表6-4 STRINGファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
戻される文字列の表示方法の指定
これ以外の場合、戻される文字列は大文字のアルファベット文字になります。 |
|
戻される文字列の長さ |
戻り値
ランダムな文字列を持つVARCHAR2
値
このプロシージャの使用は推奨されていません。現在はサポートされていますが、使用しないことをお薦めします。これは、ユーザーがパッケージを終了するとコールされます。
構文
DBMS_RANDOM.TERMINATE;
あるバージョンは、0以上1未満で小数点以下38桁(精度38桁)の乱数を戻します。他のバージョンでは、ランダムなOracle DatabaseのNUMBER
値x
を戻しますが、このx
は指定したlow
値以上および指定したhigh
値未満です。
構文
DBMS_RANDOM.VALUE RETURN NUMBER; DBMS_RANDOM.VALUE( low IN NUMBER, high IN NUMBER) RETURN NUMBER;
パラメータ
戻り値
生成された乱数であるNUMBER
値