【DBMS_RANDOM】使用 DBMS_RANDOM包生成随机字符串

大家比较常用的是使用DBMS_RANDOM.RANDOM来生成随机数,这里我们介绍一下使用DBMS_RANDOM包中的STRING函数来生成随机字符串的功能。

1.使用desc可以查看DBMS_RANDOM.STRING参数说明
sec@asd> desc DBMS_RANDOM
……省略……
FUNCTION STRING RETURNS VARCHAR2
 Argument Name                  Type                    In/Out Default?
 ------------------------------ ----------------------- ------ --------
 OPT                            CHAR                    IN
 LEN                            NUMBER                  IN

……省略……

DBMS_RANDOM.STRING函数需要的两个参数是OPT和LEN。
OPT参数取值内容如下:
'u','U' - 大写字母
'l','L' - 小写字母
'a','A' - 大、小写字母
'x','X' - 数字、大写字母
'p','P' - 可打印字符

LEN参数指定生成字符串的长度。

2.分别演示一下生成随机字符串的例子
1)生成长度为10的由大写字母构成的字符串
sec@ora10g> col string for a15
sec@ora10g> select DBMS_RANDOM.STRING('u',10) string from dual;

STRING
---------------
DXOMOOCHAS

sec@ora10g> select DBMS_RANDOM.STRING('U',10) string from dual;

STRING
---------------
XTPMXMRLCS

2)生成长度为10的由小写字母构成的字符串
sec@ora10g> select DBMS_RANDOM.STRING('l',10) string from dual;

STRING
---------------
vrekvponue

sec@ora10g> select DBMS_RANDOM.STRING('L',10) string from dual;

STRING
---------------
rlfhmatweg

3)生成长度为10的由大写字符和小写字母共同构成的字符串
sec@ora10g> select DBMS_RANDOM.STRING('a',10) string from dual;

STRING
---------------
fWJvpnEerI

sec@ora10g> select DBMS_RANDOM.STRING('A',10) string from dual;

STRING
---------------
FgdvvzZGAS

4)生成长度为10的由数字和大写字母共同构成的字符串
sec@ora10g> select DBMS_RANDOM.STRING('x',10) string from dual;

STRING
---------------
RRQ80CSDC2

sec@ora10g> select DBMS_RANDOM.STRING('X',10) string from dual;

STRING
---------------
Q9V9MMF9ZO

5)生成长度为10的由数字和大写字母共同可打印字符构成的字符串
sec@ora10g> select DBMS_RANDOM.STRING('p',10) string from dual;

STRING
---------------
p/u}}7s`5v

sec@ora10g> select DBMS_RANDOM.STRING('P',10) string from dual;

STRING
---------------
i8(pF2FFC9

3.关于DBMS_RANDOM.STRING在Oracle官方文档中的参考信息
参考链接:http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/d_random.htm#sthref4675

STRING Function

This function gets a random string.

Syntax

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

Pragmas

PRAGMA restrict_references (string, WNDS)

Parameters

Table 75-6 STRING Function Parameters

Parameter Description

opt

Specifies what the returning string looks like:

  • 'u', 'U' - returning string in uppercase alpha characters

  • 'l', 'L' - returning string in lowercase alpha characters

  • 'a', 'A' - returning string in mixed case alpha characters

  • 'x', 'X' - returning string in uppercase alpha-numeric characters

  • 'p', 'P' - returning string in any printable characters.

Otherwise the returning string is in uppercase alpha characters.

len

The length of the returning string.


Return Values

Table 75-7 STRING Function Return Values

Parameter Description

VARCHAR2

Returns a VARCHAR2.



4.小结
可以使用DBMS_RANDOM.STRING生成随机字符串的功能可以辅助完成测试数据创建。
发挥自己的想象力,使用这个生成随机字符串的功能还能做些什么。

Good luck.

secooler
10.04.29

-- The End --


请使用浏览器的分享功能分享到微信等