`

ORACLE大数据量生成语句

 
阅读更多

             为了更好的测试我们的系统在一定数据量下的运行情况,时常需要准备大量的测试数据。如果有灵活的方法可以使用,那就可以事半功倍了。

     以下介绍如何在ORACLE数据库中进行大数据量的构造方法,数据量大小均为500万。

              '''基本主键列''' SELECT LEVEL AS ID

                                                    FROM DUAL CONNECT BY LEVEL <= 5000000

 

           '''基本的单据列''' SELECT 'SO20121123' || LPAD(LEVEL, 5, 0) AS ORDER_NO

                                                     FROM DUAL CONNECT BY LEVEL <= 5000000;

 

           '''基本的日期列''' SELECT TO_DATE(TRUNC(DBMS_RANDOM.VALUE(TO_NUMBER(TO_CHAR(SYSDATE, 'J')),

                                                    TO_NUMBER(TO_CHAR(SYSDATE, 'J')))), 'J')

                                                    + DBMS_RANDOM.VALUE(1, 360000) / 3600 AS ENTRYDATE

                                                    FROM DUAL CONNECT BY LEVEL < 5000000;

 

       '''特定时间范围内''' SELECT TO_DATE(TRUNC(DBMS_RANDOM.VALUE(TO_NUMBER(TO_CHAR(SYSDATE - 10, 'J')),

                                                   TO_NUMBER(TO_CHAR(SYSDATE, 'J')))), 'J')

                                                   + DBMS_RANDOM.VALUE(1, 360000) / 3600 / 24 AS ENTRYDATE

                                                    FROM DUAL CONNECT BY LEVEL < 5000000;

 

                '''随机数据''' SELECT DBMS_RANDOM.VALUE

                                                  FROM DUAL CONNECT BY LEVEL < 5000000;

 

         '''随机数据范围''' SELECT TRUNC(DBMS_RANDOM.VALUE(0, 100))

                                                  FROM DUAL CONNECT BY LEVEL < 5000000;

 

          '''随机字符串''' SELECT DBMS_RANDOM.STRING('A', 8)

                                                FROM DUAL CONNECT BY LEVEL < 5000000;

 

         '''复杂组合(订单)'''

                                        SELECT

                                                        'P-' || TO_CHAR((TO_DATE(TRUNC(DBMS_RANDOM.VALUE(TO_NUMBER(TO_CHAR(SYSDATE - 30, 'J')),

                                                        TO_NUMBER(TO_CHAR(SYSDATE, 'J')))), 'J')

                                                        + DBMS_RANDOM.VALUE(1, 360000) / 3600 / 24), 'YYMMDD')

                                                       || '-' || LPAD(TRUNC(DBMS_RANDOM.VALUE(1, 100)), 5, '0')  AS 订单号,

                                                       '一般采购' AS 订单类型,

                                                      'SO20121123' || LPAD(LEVEL, 4, 0) AS 外部订单号,

                                                       'admin' AS 变更人,                

                                                        TO_DATE(TRU NC(DBMS_RANDOM.VALUE(TO_NUMBER(TO_CHAR(SYSDATE, 'J')),

                                                         TO_NUMBER(TO_CHAR(SYSDATE, 'J')))), 'J')

                                                         + DBMS_RANDOM.VALUE(1, 360000) / 3600 AS 更新时间

                                                          FROM DUAL CONNECT BY LEVEL < 5000000;


  '''加入随机用户或者字符'''

                                             SELECT

                                                         'P-' || TO_CHAR((TO_DATE(TRUNC(DBMS_RANDOM.VALUE(TO_NUMBER(TO_CHAR(SYSDATE - 30, 'J')),

                                                         TO_NUMBER(TO_CHAR(SYSDATE, 'J')))), 'J') + DBMS_RANDOM.VALUE(1, 360000) / 3600 / 24), 'YYMMDD')

                                                        || '-' || LPAD(TRUNC(DBMS_RANDOM.VALUE(1, 100)), 5, '0')

                                                         AS 订单号, '一般采购' AS 订单类型, CASE TRUNC(DBMS_RANDOM.VALUE(0, 2))

                                                         WHEN 0 THEN ('SO20121123' || LPAD(LEVEL, 4, 0)) ELSE ('') END AS 外部订单号,

                                                         CASE TRUNC(DBMS_RANDOM.VALUE(0, 3))

                                                         WHEN 0 THEN 'admin' WHEN 1 THEN 'steven' ELSE 'joseph' END AS 变更人,

                                                         TO_DATE(TRUNC(DBMS_RANDOM.VALUE(TO_NUMBER(TO_CHAR(SYSDATE, 'J')),

                                                         TO_NUMBER(TO_CHAR(SYSDATE, 'J')))), 'J')

                                                         + DBMS_RANDOM.VALUE(1, 360000) / 3600 AS 更新时间

                                                         FROM DUAL CONNECT BY LEVEL < 5000000;

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Oracle导出INSERT语句

    此外,如果数据量巨大,直接运行大量INSERT语句可能会对数据库性能造成影响,因此可能需要分批执行或利用批量插入的优化策略。 总的来说,“Oracle导出INSERT语句”工具简化了数据迁移过程,提供了灵活的数据备份...

    Oracle导出INSERT语句V1.1

    通常,这个过程手动操作会非常繁琐,尤其是在处理大量数据时。通过使用此工具,我们可以显著提高工作效率,避免手动编写或复制粘贴的错误。 首先,我们来理解一下INSERT语句在SQL中的作用。INSERT语句是用来向...

    mysql&oracle;语句自动生成工具

    MySQL和Oracle是两种...总的来说,这个工具为数据库管理员和开发者提供了一种高效、便捷的方式来管理和操作MySQL和Oracle数据库,减少了手动编写SQL语句的工作量,提高了工作效率,是数据库管理工具箱中的有力辅助。

    oracle表结构生成工具

    这个工具的主要目的是提高数据库设计的效率,特别是在处理大量数据表定义时。下面将详细介绍这个工具及其工作原理。 首先,Oracle是全球广泛使用的大型关系型数据库管理系统(RDBMS),用于存储和管理大量结构化...

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

    在Oracle数据库管理中,生成大量测试数据是进行性能测试、数据建模以及验证查询效率等场景下不可或缺的一环。本文将深入探讨如何利用一条SQL语句在Oracle中快速生成10万条测试数据,这对于数据库管理员和开发人员来...

    Oracle 大数据量操作优化.pdf

    Oracle数据库在处理大数据量时,优化是至关重要的,特别是对于DML(Data Manipulation Language)操作,如INSERT、UPDATE和DELETE。以下是一些关键的优化策略: 1. **暂停索引与恢复**:在进行大规模更新时,可以...

    Oracle Sql语句转换成Mysql Sql语句

    1. **数据类型**:Oracle支持的数据类型如NUMBER、LONG、RAW等在MySQL中可能需要转换为DECIMAL、TEXT或BLOB。例如,Oracle的NUMBER可以转换为MySQL的DECIMAL或FLOAT,LONG可以转换为TEXT。 2. **分页查询**:Oracle...

    自动生成insert语句的工具

    4. **批量处理**:对于大型数据库,工具应能高效处理大量数据,生成的INSERT语句数量可能达到数千甚至上万条。 5. **格式化输出**:生成的INSERT语句通常会被格式化,易于阅读和复制到其他文件中。 6. **安全**:...

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

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

    oracle 根据数据库自动生成JAVA代码

    在MVC模式下,JSP(JavaServer Pages)或Thymeleaf等技术常用来生成动态HTML,它们结合后端数据生成用户界面。自动生成的HTML模板可以帮助开发者快速创建符合数据库模型的页面布局。 总结来说,"Oracle根据数据库...

    Oracle数据库表生成C#实体类

    总之,“Oracle数据库表生成C#实体类”工具能够极大地提高开发效率,减少手动编码的工作量,并且使代码更符合面向对象的设计原则。虽然存在可能的问题,但只要正确使用和理解其工作原理,就能在.NET开发中发挥重要...

    Oracle数据库批量生成帐户脚本

    在Oracle数据库管理中,批量生成帐户脚本是一项常见的任务,尤其在大型企业环境中,需要为众多用户创建数据库账户以确保安全性和权限控制。Oracle数据库提供了丰富的SQL和PL/SQL语法来实现这样的需求。本文将深入...

    Oracle SQL自动调优生成报告和SQL语句的脚本

    这篇博客文章“Oracle SQL自动调优生成报告和SQL语句的脚本”提供了有关如何利用Oracle自带的工具进行SQL优化的具体步骤和脚本示例。 在Oracle数据库中,SQL调优主要包括以下几个方面: 1. **SQL分析**:通过执行`...

    sql语句生成器for oracle(提供表名,自动获取列名)

    这些功能使得SQL语句生成器成为数据库管理员、开发人员和数据分析人员的得力助手,尤其是在处理大量数据和多表关联查询时。 在实际应用中,"zjjTools"这个文件可能是一个包含此类工具的压缩包,用户解压后安装并...

    excel文件中批量生成insert语句

    通过这种方法,我们可以高效地处理大量数据的导入,避免了手动编写大量INSERT语句的繁琐工作。但需要注意的是,这种方法适用于数据量较小且格式统一的情况。对于大量数据或复杂的数据结构,可能需要使用更专业的数据...

    生成UPDATE语句

    在实际应用中,经常需要动态地生成这些`UPDATE`语句,尤其是当涉及到大量数据更新时。 ### 如何根据表结构自动生成SQL语句 为了实现这一点,我们首先需要获取表的元数据,包括表的所有列名及其数据类型,并确定...

    Oracle数据表生成Delphi类

    Oracle数据表生成Delphi类是一项将数据库结构与面向对象编程相结合的技术,主要目的是提高开发效率,减少手动编写数据访问层代码的工作量。这种方式通常被称为Object-Relational Mapping(ORM),它允许开发者用对象...

    压测Oracle的SQL语句的性能情况

    在IT行业中,数据库性能优化是至关重要的,尤其是对于大规模数据处理的企业级应用。Oracle作为一款广泛应用的关系型数据库管理系统,其性能直接影响到整个系统的响应速度和稳定性。本文将深入探讨如何利用压力测试...

    update语句的优化-oracle .pdf

    在处理大型数据库,尤其是当数据量达到百万级甚至千万级时,Oracle数据库的性能优化显得尤为重要。在本篇文档中,作者详细总结了在实际项目中针对Oracle数据库的update语句优化的四种方案。以下是对这四种方案的知识...

    oracle触发器实现二维码

    BLOB类型字段用于存储非结构化的二进制数据,非常适合存储像图片这样的大对象。在Oracle数据库中,创建一个触发器需要编写PL/SQL代码,定义在特定操作(例如INSERT)后执行的逻辑。 以下是一个简单的例子,展示了...

Global site tag (gtag.js) - Google Analytics