有时候做测试,造数据很麻烦,可以利用dbms.random包+connect by 简化,避免利用循环语句
首先创建一个表wyztest (id int,name varchar(20))
select rownum,dbms_random.STRING('u',8) from dual connect by level <=1000;rownum不做解释,刚好生成1000个num,dbms_random.string('u',8)表示8位的随机大写字符串
具体参数含义可以desc dbms_random查询
SQL> desc dbms_random
PROCEDURE INITIALIZE
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
VAL BINARY_INTEGER IN
FUNCTION NORMAL RETURNS NUMBER
FUNCTION RANDOM RETURNS BINARY_INTEGER
PROCEDURE RECORD_RANDOM_NUMBER
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
VAL NUMBER IN
FUNCTION REPLAY_RANDOM_NUMBER RETURNS NUMBER
PROCEDURE SEED
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
VAL BINARY_INTEGER IN
PROCEDURE SEED
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
VAL VARCHAR2 IN
FUNCTION STRING RETURNS VARCHAR2
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
OPT CHAR IN
LEN NUMBER IN
PROCEDURE TERMINATE
FUNCTION VALUE RETURNS NUMBER
FUNCTION VALUE RETURNS NUMBER
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
LOW NUMBER IN
HIGH NUMBER IN
最终将随机生成的1000行结果insert到表中