oracle快速生成上千万条测试数据

本文介绍了如何使用Oracle数据库的SQL语法快速生成上千万条测试数据,包括利用xmltable、rownum、sysdate、dbms_random.value和dbms_random.string函数,以及decode和systimestamp函数,创建日期、数值和字符串等不同类型的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

话不多说直接上代码

insert into student
(ID,XM,ZJH,ZL,DJSJ,XYSJ)
select rownum as ID,
              dbms_random.string('x',2) as XM,
              trunc(dbms_random.value(100000000000000000,999999999999999999)) as ZJH,
              decode(trunc(dbms_random.value(1,3)),1,'11111111',
                                                   2, 'abcdefg',
                                                   3,'返回值可以是数字,字符串,汉字等'
                                                   )as ZL,
              to_char(sysdate+rownum/24/3600,'yy-mm-dd hh24:mi:ss') as DJSJ,
              systimestamp as XYSJ
from xmltable('1 to 10000000')

上面SQL是利用了Oracle数据库语法的几个实用小技巧实现的:
1、利用xmltable(在10g开始支持XML后可用),如本例中的from xmltable(‘1 to 10000000’)即表示生成1000万条数据,也可以利用Oracle特有的“connect by”树形连接语法生成测试记录,只是将

from xmltable(‘1 to xx’)
换成
from dual
connect by level <= xx;

例“level <= 10”表示要生成10记录,但是connect by level有上限,如果超出上限,系统会报,"connect

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值