ランダムな文字列を生成するfunctionです。
サンプル
例)8文字のランダムな文字列を返すFUNCTION
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
CREATE OR REPLACE FUNCTION GET_RANDOM_STR RETURN VARCHAR2 IS a VARCHAR2(8); b VARCHAR2(100); c NUMBER(2,0); BEGIN --使用する文字 b := 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890!"#$%&''()*+,.'; --桁数 c := 8; --ランダム文字列を生成する FOR i IN 1..c LOOP a := a || substr(b, dbms_random.value * LENGTHB(b)+1, 1); END LOOP; RETURN a; EXCEPTION WHEN OTHERS THEN RETURN NULL; END; / |
- 実行例
- SQL> SELECT GET_RANDOM_STR FROM dual; GET_RANDOM_STR ----------------- bE8qA%X#
解説
- 桁数を変更したい場合は、12行目の数値と4行目のサイズを変更してください。
- 使用する文字を変更したい場合は、9行目の文字一覧を変更してください。