`
zpball
  • 浏览: 914955 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Oracle中如何用一条SQL快速生成10万条测试数据(转)

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




本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yzsind/archive/2009/12/08/4967133.aspx
分享到:
评论

相关推荐

    Oracle中如何用一条SQL快速生成10万条测试数据

    本文将深入探讨如何利用一条SQL语句在Oracle中快速生成10万条测试数据,这对于数据库管理员和开发人员来说是一项极为实用的技能。 ### 核心知识点:使用SQL生成大量测试数据 #### 1. **理解ROWNUM和CONNECT BY ...

    Oracle中如何用一条SQL快速生成10万条测试数据.txt

    ### 核心知识点:使用一条SQL语句快速生成10万条测试数据 #### 1. 使用`CONNECT BY LEVEL`生成连续行 在Oracle中,`CONNECT BY LEVEL`是一个非常强大的功能,它可以用来生成连续的行数据。在这个例子中,我们使用...

    快速生成10万条测试数据

    ### 快速生成10万条测试数据 在软件开发过程中,为了确保应用程序的功能正确性和性能稳定性,测试数据是必不可少的。特别是在数据库相关的应用中,拥有大量且具有代表性的测试数据能够帮助开发者更好地验证系统的...

    Oracle中如何用SQL检测字段是否包括中文字符

    首先我想到的是采用检测每个字节ASCII的方式,这样的话需要写一个自定义函数,然后SQL中调用得到结果。但是感觉这个方法估计很耗时,毕竟每个字符都要比较,所以没有去实现。突然想到Oracle有一个编码转换的函数叫...

    如何将Oracle的一个大数据表快速迁移到 Sqlserver2008数据库(图文教程)

    本教程将详细讲解如何将Oracle的一个大数据表快速迁移到SQL Server 2008数据库,采用的方法是通过SQL Server Integration Services (SSIS) 的导入和导出向导。 首先,确保你的SQL Server 2008 R2服务器已经安装了...

    Java使用JDBC向MySQL数据库批次插入10W条数据(测试效率)

    本文将详细讲解如何使用JDBC批量插入10万条数据,并探讨其背后的原理和优化策略。 批量处理在JDBC中主要通过Statement对象的`addBatch()`和`executeBatch()`两个方法实现。在示例代码中,我们创建了一个`...

    导出Oracle 表结构工具

    DBExport是一个专门设计用于Oracle数据库的工具,它能够快速高效地导出表结构和数据。标题中的"DBExport2.51 For ORACLE"指的是该工具的特定版本,适用于Oracle数据库,版本号为2.51。这个工具提供了直观的界面和...

    指导学习oracle

    接着,使用一个PL/SQL块来插入100万条随机数据,为了提高性能,每插入1000条数据就进行一次提交。 ##### 测试查询性能 为了测试查询效率,可以运行以下SQL命令: ```sql SET TIMING ON SELECT * FROM dumpy WHERE...

    韩顺平oracle学习笔记

    概述:在oracle中要创建一个新的用户使用create user语句,一般是具有dba(数据库管理员)的权限才能使用。 create user 用户名 identified by 密码; 2.给用户修改密码 概述:如果给自己修改密码可以直接使用 sql&gt;...

    SQL性能优化

     以上两个SQL中dy_dj(电压等级)及xh_bz(销户标志)两个字段都没进行索引,所以执行的时候都是全表扫描,第一条SQL的dy_dj = '1KV以下'条件在记录集内比率为99%,而xh_bz=1的比率只为0.5%,在进行第一条SQL的...

    使用Oracle数据库时的Web分页方法

    以一个具体的例子来说明,假设我们有一个行业产品表,包含10万条记录,字段有产品名称、所在行业和市场价格。当用户选择某个行业时,我们需要列出该行业所有产品,并按照产品名称排序,如果记录超过20条,则分页显示...

    认识oracle.ppt

    Oracle 10g是Oracle数据库的一个重要版本,提供了许多增强的功能,包括数据仓库优化、网格计算支持以及高级安全性特性。 课程安排覆盖了理论学习和实践操作,总计32学时,其中理论课24学时,实验课8学时。推荐的...

    Oracle的DevOps实战.pdf

    该查询执行时间长达5788秒,逻辑读取达到10亿个数据块,返回21万行数据。SQL语句相当复杂,包括一个"Not In"子查询,这是性能问题的主要来源。 "Not In"子查询在数据库优化中常常被视为性能杀手,因为它会导致全表...

    Oracle数据库实用教程(第二版).ppt

    总的来说,《Oracle数据库实用教程(第二版)》为读者提供了一个全面的学习路径,涵盖了Oracle 10g的体系结构、基本操作、安全管理、数据备份与恢复、性能调优等多个方面,是学习和掌握Oracle数据库管理的宝贵资源。

    GP开发文档Oracle开发文档

    而当达到10万个以上时,性能将显著降低。 - **索引使用**: 不推荐建立索引,包括但不限于普通索引、唯一索引、主键等。 - **临时表管理**: 使用后的临时表应及时删除,以避免占用不必要的资源。 - **分区表策略**: ...

    ORACLE安装方法

    而“爱书吧-2万本图书免费下载.url”可能是指向一个图书下载网站的链接,可能包含更多关于Oracle和其他IT领域的书籍资源。 总之,安装Oracle 11g在Linux上需要耐心和细心,每个步骤都至关重要,遵循官方文档和最佳...

    The eighth skills of SQL design by DB Query Analyzer

    经过四年多的研究、设计、开发,并在Oracle、Sybase、DB2、Informix、MS SQL Server、Mysql、MS ACCESS、FoxPro和Paradox等众多数据库系统上进行了约三个月的集成测试后,于2007年面世。自那时以来,该工具的功能和...

    penguinsdbtools:ORACLE,MYSQL,SQLSERVER,POSTGRE,DB2,SYBASE,SQLLITE-开源

    每分10万件以上表数据前后对比输出结果。 ■测试环境: i3 2.53GZ MEM 2G ORACLE11G TBL 10column record length 1000byte cuishuangjia@gmail.com 企鹅群:数据库第三方工具交流 184715368 更多使用文档说明和...

    船期管理数据库存储过程

    在描述中提到的“遗留SQL”意味着我们正在处理旧有的SQL代码,这可能是在Oracle数据库上运行的自定义查询或存储过程。这些SQL语句可能随着时间的推移而积累,形成了超过1万行的代码量,这在维护和升级时会带来挑战。...

Global site tag (gtag.js) - Google Analytics