Oracle 資料庫SQL語句生成大量測試資料。

2021-10-05 20:02:52 字數 1818 閱讀 4050

做資料庫開發或管理的人經常要建立大量的測試資料,動不動就需要上萬條,如果一條一條的錄入,那會浪費大量的時間,本文介紹了oracle中如何通過一條sql快速生成大量的測試資料的方法。

產生測試資料的sql如下:

sql> select rownum as id,

2                 to_char(sysdate + rownum / 24 / 3600, 『yyyy-mm-dd hh24:mi:ss』) as inc_datetime,

3                 trunc(dbms_random.value(0, 100)) as random_id,

4                 dbms_random.string(『x』, 20) random_string

5            from dual

6          connect by level <= 10;

id inc_datetime         random_id random_string

1 2009-12-08 19:43:14         76 gwmu280mivbkkoczv620

2 2009-12-08 19:43:15         34 gnv88o6tdhd3twc5gwi5

3 2009-12-08 19:43:16         77 li6h4o5iahqimo4b0wmh

4 2009-12-08 19:43:17         99 lp7xp49i0yojiysjdqzo

5 2009-12-08 19:43:18         55 v3284x9rxw4uzi8bqmo3

6 2009-12-08 19:43:19         16 t0oa52uaoghl1tt46h25

7 2009-12-08 19:43:20         61 uy6ruof7hwto86942flp

8 2009-12-08 19:43:21         25 jyxo4opew8j1ckvcpdjr

9 2009-12-08 19:43:22         10 donu6w9qvqm3kj2ug8lo

10 2009-12-08 19:43:23         76 j8djlvnouizdxe4uxujg

10 rows selected

上面sql是利用了oracle資料庫語法的幾個實用小技巧實現的:

1、利用oracle特有的「connect by」樹形連線語法生成測試記錄,「level <= 10」表示要生成10記錄;

2、利用rownum虛擬列生成遞增的整數資料;

3、利用sysdate函式加一些簡單運算來生成日期資料,本例中是每條記錄的時間加1秒;

4、利用dbms_random.value函式生成隨機的數值型資料,本例中是生成0到100之間的隨機整數;

5、利用dbms_random.string函式生成隨機的字元型資料,本例中是生成長度為20的隨機字串,字串中可以包括字元或數字。

ok,那要生成10萬條測試記錄表可以用如下sql:

create table mytesttable as

select rownum as id,

to_char(sysdate + rownum/24/3600, 『yyyy-mm-dd hh24:mi:ss』) as inc_datetime,

trunc(dbms_random.value(0, 100)) as random_id,

dbms_random.string(『x』, 20) random_string

from dual

connect by level <= 100000;

Oracle資料庫sql語句

1.建立使用者 賦許可權 刪除使用者 drop tablespace test tbs including contents cascade constraints 刪除表空間 create tablespace test tbs datafile test pdb.dbf size 1024m a...

oracle資料庫sql語句01

查詢所有使用者 select username,account status from dba users 查詢表資訊 sql desc scott.emp 名稱 是否為空?型別 empno not null number 4 ename varchar2 10 job varchar2 9 mgr...

oracle常用資料庫sql語句

建立表空間 create bigfile tablespace 表空間名稱 datafile 表空間路徑 size 100m autoextend on extent management local autoallocate 建立使用者 create user 使用者名稱 identified b...