DBMS_RANDOM
パッケージは、組込み式の乱数ジェネレータを提供します。DBMS_RANDOM
は暗号化に使用するものではありません。
この章では、次の項目について説明します。
推奨されないサブプログラム
セキュリティ・モデル
使用上の注意
注意: 新しいアプリケーションでは、推奨されないプロシージャは使用しないことをお薦めします。推奨されない機能は、下位互換性を維持する目的のみでサポートされています。 |
Oracle Database 11gでは、次のサブプログラムの使用は推奨されていません。
このパッケージは、SYS
としてインストールする必要があります。デフォルトでは、このパッケージは、現行のユーザー名、秒数まで示した現在の時間および現行セッションで初期化されます。このパッケージを実行する必要があるユーザーには、明示的にEXECUTE
権限を付与し、PUBLIC
EXECUTE
権限に依存しないことをお薦めします。
DBMS_RANDOM.RANDOM
は、[-2^^31, 2^^31)の整数を生成します。
DBMS_RANDOM.VALUE
は[0,1)の数を生成し、精度は38桁です。
DBMS_RANDOM
は明示的に初期化できますが、乱数ジェネレータをコールする前に初期化する必要はありません。明示的な初期化が行われない場合は、日付、ユーザーIDおよびプロセスIDで自動的に初期化されます。
このパッケージを、同じシードを使用して2回シードしてから同じ方法でアクセスした場合、2回とも同じ結果が生成されます。
テストなどのように、すべての実行で乱数の順序が同じになる必要のある場合があります。その場合は、DBMS_RANDOM.SEED
のオーバーロードの1つをコールして、ジェネレータを定数値でシードします。各実行時の出力を変える場合は、単にシードのコールを省略して、システムによって適切なシードが選択されるようにします。
表108-1 DBMS_RANDOMパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
|
シード値を使用して、パッケージを初期化します。 |
|
正規分布の乱数を戻します。 |
|
乱数を生成します。 |
|
シードをリセットします。 |
|
ランダム文字列を取得します。 |
|
パッケージを終了します。 |
|
0以上1未満で小数点以下38桁(精度38桁)の乱数を取得します。このファンクションがオーバーロードされると、ランダムなOracleの数値xを取得します。このxは |
このプロシージャはジェネレータを初期化します。
注意: リリース11gR1では、このプロシージャの使用は推奨されていません。現在はサポートされていますが、使用しないことをお薦めします。 |
このプロシージャは乱数を生成します。
注意: リリース11gR1では、このプロシージャの使用は推奨されていません。現在はサポートされていますが、使用しないことをお薦めします。 |
パッケージを終了するときは、TERMINATE
プロシージャをコールします。
注意: リリース11gR1では、このプロシージャの使用は推奨されていません。現在はサポートされていますが、使用しないことをお薦めします。 |