数据库开发或管理的人经常要创建大量的测试数据,动不动就需要上万条,如果一条一条的录入,那会浪费大量的时间,本文介绍了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;

----或者
insert into t_userbase
select userbase_seq_id.nextval, to_char(rownum+10),to_char(rownum+10),1 from dual connect by level <= 50000

oracle批量插入数据(测试)的更多相关文章

  1. Oracle批量插入数据SQL语句太长出错:无效的主机/绑定变量名

    Oracle数据库,用mybatic批量插入数据: <insert id="saveBatch" parameterType="io.renren.entity.N ...

  2. C# Oracle批量插入数据进度条制作

    前言 由于项目需求,需要将Excel中的数据进过一定转换导入仅Oracle数据库中.考虑到当Excel数据量较大时,循环Insert语句效率太低,故采用批量插入的方法.在插入操作运行时,会造成系统短暂 ...

  3. 关于oracle批量插入数据遇到的问题

    截取部分日志信息: 2015-09-01 14:48:47,132 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReade ...

  4. mybatis+Oracle 批量插入数据,有数据做更新操作

    <!-- 批量添加 -->     <insert id="batchAdd" parameterType="java.util.List"& ...

  5. 161011、oracle批量插入数据

    需求:从一张表中查询数据插入到另外一张表 -- Created on 2016/10/13 by RICK declare -- Local variables here begin ') loop ...

  6. oracle批量插入数据

    有一次开发一个功能,须要导入别人提供的几万条数据, 数据在一个*.sql文件里,大概有8万条数据 insert into testtable(id,name) values(1,'1')   ---- ...

  7. Sqlite 快速批量插入数据 测试

    public static int insertDbBatch() { string sql = ""; SQLiteConnection conn = new SQLiteCon ...

  8. SSM项目day4 Oracle批量插入数据bug <foreach>标签中collection属性使用的是属性名

  9. mybatis使用序列批量插入数据

    mybatis只提供了单条数据的插入,要批量插入数据我们可以使用循环一条条的插入,但是这样做的效率太低下,每插入一条数据就需要提交一次,如果数据量几百上千甚至更多,插入性能往往不是我们能接受的,如下例 ...

随机推荐

  1. c# 生成自定义图片

    using System.Drawing; using System.IO; using System.Drawing.Imaging; using System; namespace treads ...

  2. 性能监控(3)–linux下的iostat命令

    iostat可以显示cpu与磁盘信息,添加-d参数可以只显示磁盘信息

  3. 大数据之 Spark

    1 渊源 于2009由Matei Zaharia创立了spark大数据处理和计算框架,基于内存,用scala编写. 2 部署 2.1 需要软件包 下载路径见已有博文 Jdk ——因为运行环境为jvm ...

  4. minitab 转换语言

    在使用minitab的时候,我们会以中文版熟悉界面,但是我们在实际操作的时候就要使用英文版的功能. 那么如何改变其语言环境呢. 很简单: 工具->选项->语言

  5. System.arraycopy 怎么使用的?

    前言:看 ArrayList 的源码,发现 remove 方法主要依赖了 System.arraycopy() 方法实现的.所以需要了解一下这个方法如何使用.转载请注明出处:https://www.c ...

  6. Python 最佳实践指南 2018 学习笔记

    基础信息 版本 Python 2.7 Python 3.x Python2.7 版本在 2020 年后不再提供支持,建议新手使用 3.x 版本进行学习 实现 CPython:Python的标准实现: ...

  7. MEF 插件式开发之 小试牛刀

    MEF 简介 Managed Extensibility Framework 即 MEF 是用于创建轻量.可扩展应用程序的库. 它让应用程序开发人员得以发现和使用扩展且无需配置. 它还让扩展开发人员得 ...

  8. js 绘制数学函数

    <!-- <!doctype html> --> <html lang="en"> <head> <meta charset= ...

  9. 原生JS强大DOM选择器querySelector与querySelectorAll

    在传统的 JavaScript 开发中,查找 DOM 往往是开发人员遇到的第一个头疼的问题,原生的 JavaScript 所提供的 DOM 选择方法并不多,仅仅局限于通过 tag, name, id ...

  10. 【代码笔记】Web-ionic 网格(Grid)

    一,效果图. 二,代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...