`

Oracle中如何用一条SQL快速生成1大量测试数据

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

原文地址: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

    在Oracle数据库中,通过一条SQL语句快速生成大量测试数据是一项非常实用的技能。本文将详细介绍如何利用Oracle中的特性来实现这一目标。 ### 核心知识点:使用一条SQL语句快速生成10万条测试数据 #### 1. 使用`...

    oracle批量插入测试数据

    数据库做数据库开发或管理的人经常要创建大量的测试数据,动不动就需要上万条,如果一条一条的录入,那会浪费大量的时间,本文介绍了Oracle中如何通过一条 SQL快速生成大量的测试数据的方法。 产生测试数据的SQL如下...

    快速生成10万条测试数据

    #### 一、Oracle数据库生成测试数据的方法 Oracle是一种广泛使用的商业关系型数据库管理系统,它提供了强大的数据管理和处理能力。对于需要快速生成大量测试数据的场景,Oracle提供了一系列内置函数和特性,可以...

    java jsp sqlserver数据表转移到oracle实例 源代码

    标题中的“java jsp sqlserver数据表转移到oracle实例 源代码”表明这是一个关于使用Java和JSP技术,将SQL Server数据库中的数据表迁移至Oracle数据库的实际操作案例。这个过程通常涉及数据迁移、数据转换以及可能的...

    .Net数据库生成测试数据工具类

    在.NET开发环境中,数据库...总的来说,这个.NET数据库生成测试数据工具类是一个实用的开发辅助工具,它提高了测试数据准备的效率,减少了人工错误,同时支持多种数据库,使得开发人员能够在各种环境中快速进行测试。

    Oracle可视化工具sqldeveloper-23.1.0.097.1607-x64

    用户可以运行单条或批量 SQL 查询,查看结果集,甚至可以直接在编辑器中进行数据的增删改查操作。 **3. 数据浏览** 通过 SQL Developer,用户可以浏览数据库中的表、视图、索引、存储过程等各种对象。它可以显示...

    oracle之SQL优化

    - **执行计划**:在Oracle中,每一条SQL语句都会有一个执行计划,它定义了数据如何被检索和处理。通过`EXPLAIN PLAN`或`DBMS_XPLAN`包可以查看执行计划,帮助分析SQL性能瓶颈。 - **成本基础优化器**:Oracle使用...

    Oracle SQL连接查询总结.docx

    - 在实际开发中较少使用,主要用于生成测试数据或某些特殊需求场景。 - 交叉连接通常不建议使用,因为它可能会导致性能问题。 **例子:** 假设TableA中有四条记录,TableB中也有四条记录,使用CROSS JOIN后,结果...

    oracle插入几千几万条测试实例

    4. **插入操作**:使用`INSERT INTO`语句向表`t_sys_users`中插入一条新记录。这里通过字符串连接操作(`||`)动态生成不同的字段值,以确保每条记录具有唯一性。 5. **序列使用**:利用Oracle中的序列对象`seq_t_...

    读取Excel生成Sql脚本

    例如,如果Excel中的每一行对应数据库中的一条记录,那么可能会生成一系列INSERT语句来插入新数据。 为了将这些SQL语句执行到数据库,工具需要使用JDBC(Java Database Connectivity),这是Java平台的标准接口,...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

     Oracle 数据库中的SQL是当今市场上功能最强大的SQL实现之一,而本书全面展示了这一工具的威力。如何才能让更多人有效地学习和掌握SQL呢?Karen Morton及其团队在本书中提供了专业的方案:先掌握语言特性,再学习...

    Java版本Oracle SQL Plus

    在实际工作中,Java版本的Oracle SQL Plus适用于数据库开发、性能测试、数据迁移、故障排查等多个场景。它不仅提供了丰富的功能,还通过其简洁的命令行界面提高了工作效率。不论你是数据库新手还是经验丰富的专家,...

    Oracle导出INSERT语句

    4. **生成INSERT语句**:工具会遍历所选表的所有记录,为每一条数据生成一个INSERT INTO语句,结构通常为 `INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);` 5. **保存与输出**:生成的INSERT语句会...

    删除ORACLE某个用户下所有数据

    对于一个特定用户的表,我们可以使用以下SQL查询来获取所有表名,并自动生成删除语句: ```sql SELECT 'DROP TABLE ' || table_name || ';' || CHR(13) || CHR(10) FROM user_tables; ``` 这条命令会列出当前用户...

    oracle实现数据同步

    - 这条命令表示 Oracle 自动在当前时间立即进行第一次快速刷新,之后每隔 30 秒快速刷新一次。 #### 四、创建触发器 由于创建快照后,在目标数据库上会自动生成一个名为 `sn_test` 的表,该表会根据前面设置的...

    根据数据库链接的属性,自动判断使用哪种sql代码,以及判断是否使用测试数据

    综上所述,这个项目的关键技术包括C#编程、分层架构设计、动态SQL生成以及测试数据管理。通过这样的设计,我们可以创建一个灵活、可扩展且易于测试的数据库访问组件,它能适应不同类型的数据库,并能在不干扰生产...

    oracle job实例 测试通过

    过程内部首先打开SQL游标,然后解析并执行一条ALTER TRIGGER语句,最后关闭游标。这个过程可以扩展到编译数据库中的其他对象,如函数或存储过程。 ### 5. 使用DBMS_JOB包进行作业调度 虽然代码中这部分被注释掉了...

Global site tag (gtag.js) - Google Analytics