/************************************************************
** Table: SYS.T_PARTITION_RANGE
** Number of Records: 10000
************************************************************/
DECLARE
t_seed NUMBER(20);
BEGIN
-- Initialize Random Number Generator
SELECT TO_NUMBER(TO_CHAR(SYSDATE, 'MMDDHH24MISS'))
INTO t_seed
FROM Dual;
DBMS_RANDOM.INITIALIZE(t_seed);
-- Generate Random Data
FOR t_counter IN 1..10000 LOOP
INSERT INTO "SYS"."T_PARTITION_RANGE" (
"ID", "NAME"
) VALUES (
DBMS_RANDOM.VALUE(0.00, 2147483647.00), DBMS_RANDOM.STRING('A', DBMS_RANDOM.VALUE(1, 50))
);
END LOOP;
DBMS_RANDOM.TERMINATE;
END;
/
COMMIT;
/
大家比较常用的是使用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
---------------
fWJ***EerI
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
相关文章
- 11-27批量数据插入优化
- 11-27C语言数据结构_向顺序表中插入元素
- 11-27插入一行数据简要流程
- 11-27使用jmeter在数据库中批量插入数据
- 11-27datagrid数据网格获取所有选中行的索引,插入某个列值为其他列的运算值
- 11-27SQL查询数据并插入新表
- 11-27插入数据:返回记录的id值
- 11-27Mybatis使用Map当做参数获取插入数据成功后返回的自增id
- 11-27Mybatis插入数据返回主键
- 11-27【数据结构 C++】排序——冒泡、插入、选择、希尔、归并、快排、堆排序