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