ヘッダーをスキップ
Oracle® TimesTen In-Memory Database PL/SQLパッケージ・リファレンス
11gリリース2 (11.2.2)
B66725-05
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

6 DBMS_RANDOM

DBMS_RANDOMパッケージは、組込み式の乱数ジェネレータを提供します。

この章の内容は次のとおりです。


注意:

DBMS_RANDOMは暗号化に使用するものではありません。


DBMS_RANDOMの使用


使用上の注意

DBMS_RANDOMは明示的に初期化できますが、乱数ジェネレータをコールする前に初期化する必要はありません。明示的な初期化が行われない場合は、日付、ユーザーIDおよびプロセスIDで自動的に初期化されます。

このパッケージを、同じシードを使用して2回シードしてから同じ方法でアクセスした場合、2回とも同じ結果が生成されます。

テストなどのように、すべての実行で乱数のシーケンスが同じになる必要のある場合があります。その場合は、SEEDのオーバーロードをコールして、ジェネレータを一定の値でシードします。各実行時の出力を変える場合は、単にシードのコールを省略します。これにより、システムによって適切なシードが選択されます。


DBMS_RANDOMサブプログラムの要約

表6-1 DBMS_RANDOMパッケージのサブプログラム

サブプログラム 説明

INITIALIZEプロシージャ


シード値を使用して、パッケージを初期化します。

NORMALファンクション


正規分布の乱数を戻します。

RANDOMファンクション


乱数を生成します。

SEEDプロシージャ


シードをリセットします。

STRINGファンクション


ランダム文字列を取得します。

TERMINATEプロシージャ


パッケージを終了します。

VALUEファンクション


あるバージョンは、0以上1未満で小数点以下38桁(精度38桁)の乱数を取得します。他のバージョンでは、ランダムなOracle Databaseの数値xを取得しますが、このxは指定した下限以上および指定した上限未満です。



注意:

INITIALIZEプロシージャRANDOMファンクションおよびTERMINATEプロシージャは非推奨になりました。今回のリリースに含まれているのは、下位互換性を保つという理由にすぎません。


注意:

  • PLS_INTEGERデータ・タイプとBINARY_INTEGERデータ・タイプは同じです。このドキュメントでは、リファレンス情報でデータ・タイプ(表タイプ、レコード・タイプ、サブプログラム・パラメータ、サブプログラム戻り値など)を示す場合にBINARY_INTEGERを使用しますが、説明および例ではいずれも使用される場合があります。

  • INTEGERデータ・タイプとNUMBER(38)データ・タイプも同じです。このドキュメントでは、全体をとおしてINTEGERを使用します。



INITIALIZEプロシージャ

このプロシージャの使用は推奨されていません。現在はサポートされていますが、使用しないことをお薦めします。これは乱数ジェネレータを初期化します。

構文

DBMS_RANDOM.INITIALIZE (
   val  IN  BINARY_INTEGER);

パラメータ

表6-2 INITIALIZEプロシージャのパラメータ

パラメータ 説明

val

乱数の生成に使用するシード番号。


使用上の注意

このプロシージャはSEEDプロシージャのコールのみを行うもので、今後サポートされません。


NORMALファンクション

このファンクションは、標準正規分布の乱数を戻します。

構文

DBMS_RANDOM.NORMAL
  RETURN NUMBER;

戻り値

乱数のNUMBER


RANDOMファンクション

このプロシージャの使用は推奨されていません。現在はサポートされていますが、使用しないことをお薦めします。これは乱数を生成して戻します。

構文

DBMS_RANDOM.RANDOM
   RETURN binary_integer;

戻り値

-power(2,31)以上power(2,31)未満のランダムBINARY_INTEGER

使用上の注意

「NORMALファンクション」および「VALUEファンクション」を参照してください。


SEEDプロシージャ

このプロシージャは、乱数の生成に使用されるシードをリセットします。

構文

DBMS_RANDOM.SEED (
   val  IN  BINARY_INTEGER);

DBMS_RANDOM.SEED (
   val  IN  VARCHAR2);

パラメータ

表6-3 SEEDプロシージャのパラメータ

パラメータ 説明

val

乱数の生成に使用するシード番号または文字列。


使用上の注意

シードには2000までの長さの文字列を使用できます。


STRINGファンクション

このファンクションは、ランダムな文字列を生成して戻します。

構文

DBMS_RANDOM.STRING
   opt  IN  CHAR,
   len  IN  NUMBER)
  RETURN VARCHAR2;

パラメータ

表6-4 STRINGファンクションのパラメータ

パラメータ 説明

opt

戻される文字列の表示方法の指定

  • 'u'、'U' - 大文字のアルファベット文字で文字列を戻します。

  • 'l'、'L' - 小文字のアルファベット文字で文字列を戻します。

  • 'a'、'A' - 大/小文字が混在したアルファベット文字で文字列を戻します。

  • 'x'、'X' - 大文字のアルファベット文字と数字で文字列を戻します。

  • 'p'、'P' - 印刷可能な任意の文字で文字列を戻します。

これ以外の場合、戻される文字列は大文字のアルファベット文字になります。

len

戻される文字列の長さ


戻り値

ランダムな文字列を持つVARCHAR2


TERMINATEプロシージャ

このプロシージャの使用は推奨されていません。現在はサポートされていますが、使用しないことをお薦めします。これは、ユーザーがパッケージを終了するとコールされます。

構文

DBMS_RANDOM.TERMINATE;

VALUEファンクション

あるバージョンは、0以上1未満で小数点以下38桁(精度38桁)の乱数を戻します。他のバージョンでは、ランダムなOracle DatabaseのNUMBERxを戻しますが、このxは指定したlow値以上および指定したhigh値未満です。

構文

DBMS_RANDOM.VALUE
  RETURN NUMBER;

DBMS_RANDOM.VALUE(
  low  IN  NUMBER,
  high IN  NUMBER)
RETURN NUMBER;

パラメータ

表6-5 VALUEファンクション・パラメータ

パラメータ 説明

low

乱数を生成する範囲の下限

high

乱数を生成する範囲の上限


戻り値

生成された乱数であるNUMBER