ここではORACLE社が提供するPL/SQL言語で乱数・ランダムの取得方法について紹介しています。
PL/SQLの基本的な処理については↓で詳しく解説していますので参考にしてください。
>>PL/SQLの書き方
乱数・ランダムの取得方法
乱数・ランダムな値を取得するには、DBMS_RANDOMパッケージを使用します。
例1:0以上1未満の小数値
乱数は次のように「dbms_random.value」で取得できます。
dbms_random.value;
SQL> CREATE OR REPLACE PROCEDURE PRO1
2 IS
3 rdm NUMBER;
4 BEGIN
5 rdm := dbms_random.value;
6 DBMS_OUTPUT.PUT_LINE(rdm);
7 END;
8 /
プロシージャが作成されました。
SQL> set serveroutput on
SQL> EXECUTE PRO1
.78583289615810071896532860254216333557
PL/SQLプロシージャが正常に完了しました。
例2:1以上10未満の小数値
乱数は次のように「dbms_random.value(開始値,終了値)」で、値の範囲を選択して取得できます。
dbms_random.value(開始値,終了値);
SQL> CREATE OR REPLACE PROCEDURE PRO1
2 IS
3 rdm NUMBER;
4 BEGIN
5 rdm := dbms_random.value(1,10);
6 DBMS_OUTPUT.PUT_LINE(rdm);
7 END;
8 /
プロシージャが作成されました。
SQL> EXECUTE PRO1
9.36265636801338346552117087567003671325
PL/SQLプロシージャが正常に完了しました。
例3:ランダム文字列
DBMS_RANDOMパッケージでは、「dbms_random.value(文字種,桁数)」で、ランダムな文字列を取得できます。
SQL> CREATE OR REPLACE PROCEDURE PRO1
2 IS
3 rdm VARCHAR2(10);
4 BEGIN
5 rdm := dbms_random.string('A',10);
6 DBMS_OUTPUT.PUT_LINE(rdm);
7 END;
8 /
プロシージャが作成されました。
SQL> EXECUTE PRO1
zWAQxxpUeA
PL/SQLプロシージャが正常に完了しました。
文字種 | 意味 |
uまたはU | 大文字のアルファベット文字列 |
lまたはL | 小文字のアルファベット文字列 |
aまたはA | 大文字・小文字が混在したアルファベット文字列 |
xまたはX | 大文字のアルファベット文字列と数字の文字列 |
pまたはP | 印刷可能な任意の文字の文字列 |