`
loupeng0916
  • 浏览: 5080 次
社区版块
存档分类
最新评论

Oracle中如何创建大量测试数据的两种方法

 
阅读更多

 

一.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;

 

oracle创建自增字段:

create table userlogin
(  
     id   number(6) not null,
     name   varchar2(30)   not null primary key
);
create sequence userlogin_seq increment by 1 start with 1 minvalue 1 maxvalue 9999999999999 nocache order;

create or replace trigger userlogin_trigger
before insert on userlogin
for each row
begin
      select   userlogin_seq.nextval   into:new.id from sys.dual ;
end;

insert into userlogin (name) select '张晓'  from dual;
commit;

select * from userlogin;

 

二.oracle通过存储过程创建大量测试数据:

CREATE OR REPLACE PROCEDURE Test
AS
 MyCounter Integer:=1; /*设置变量*/
 temp Integer:=1;
BEGIN

    
    LOOP
             insert into userlogin(name) select   userlogin_seq.nextval  from dual;
             EXIT WHEN MyCounter=10000000 ;
             MyCounter:=MyCounter+1;
             temp:=temp+1;
             commit;
          

    END LOOP;

END;

分享到:
评论

相关推荐

    Oracle数据库大对象数据存取的两种实现方法及时间性能比较.pdf

    本文旨在探讨Oracle数据库中大对象数据存取的两种实现方法,并对它们的时间性能进行比较。Oracle数据库中的大对象数据主要分为两类:字符型LOB(CLOB和NCLOB)与二进制型LOB(BLOB),以及存储在操作系统文件中的...

    如何快速转移Oracle中海量数据

    6. **测试验证**: 在实际操作前,先在一个测试环境中验证这两种方法的效果,确保数据迁移的正确性和效率。 总之,Oracle提供了多种手段来快速转移大量数据,上述两种方法在特定情况下能够显著提升数据迁移的速度。...

    mysql数据导入到Oracle中

    - **权限设置**:确保在目标Oracle数据库中拥有足够的权限来创建对象和导入数据。 - **字符集兼容**:检查并确保两个数据库的字符集一致或兼容,以避免数据丢失或乱码。 - **索引和约束**:在导入数据后,可能需要...

    oracle数据库各种删除重复数据方法

    本文将详细介绍几种在Oracle数据库中删除重复数据的有效方法。 #### 方法一:基于ID删除重复行 此方法适用于只需要考虑单一字段(如ID)的情况,通过找出具有相同ID但非最小ROWID的记录来进行删除。 **SQL语句:*...

    羽Oracle DB Link批量转移数据.pdf

    解决方案包括三种方法:使用磁带库备份数据还原到模拟数据库中,使用数据副本将数据复制到模拟数据库中,或者使用Oracle DB Link将数据批量转移到模拟数据库中。下面我们将详细讨论每种方法的优缺点。 第一种方法:...

    利用数据转换器移植数据,提供从db2导入到oracle

    5. **在Oracle中创建表**:在Oracle数据库中,可以使用从DB2复制的SQL创建语句创建与源表结构相同的表。这确保了目标数据库的结构与源数据库匹配,为数据导入做好准备。 6. **数据导出/导入**:数据转换器提供了...

    Oracle集群数据库压力测试与分析.pdf

    2. 使用Swingbench的oeWizard命令导入测试数据。 3. 在数据库设置界面配置测试参数,如连接信息、事务类型、并发用户数等。 4. 运行压力测试并记录性能指标,如查询速度、响应时间、CPU利用率等。 5. 分析测试结果,...

    还原测试环境的两种方法

    本文将详细介绍两种常见的还原测试环境的方法,结合“数据库闪回服务”这一标签,我们将主要讨论如何利用数据库技术以及工具来实现这一目标。 一、数据库快照恢复 数据库快照是数据库管理系统提供的一种功能,它...

    快速生成10万条测试数据

    对于需要快速生成大量测试数据的场景,Oracle提供了一系列内置函数和特性,可以帮助我们高效地完成任务。 #### 二、使用Connect By Level和Rownum生成数据 在Oracle中,`CONNECT BY LEVEL` 和 `ROWNUM` 是两个非常...

    sqlserver转oracle

    SQL Server和Oracle是两种不同的关系型数据库管理系统(RDBMS),它们的语法、数据类型、存储过程和索引机制都有所不同。例如,SQL Server使用T-SQL作为查询语言,而Oracle使用PL/SQL。理解这些差异对于数据转换至...

    loadrunner测试数据库性能,mysql、Oracle

    本篇将详细介绍LoadRunner如何进行数据库性能测试,以及两种主要的测试方式。 1. **LoadRunner简介** LoadRunner由Micro Focus公司开发,它通过模拟大量并发用户执行预定义的业务场景,来测试系统在高负载下的性能...

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

    总的来说,Oracle的`CONVERT`函数提供了一种简洁且高效的方式来检测字段中是否包含中文字符,这对于处理包含多种语言数据的数据库来说是一个实用的工具。理解并掌握这种技术,对于在日常工作中处理类似问题会非常有...

    使用toad将excel数据导入oracle

    使用 Toad 将 Excel 数据导入 Oracle 是一种常见的数据导入方式,下面将详细介绍该过程中涉及的知识点。 Toad 简介 Toad 是一个 Oracle 数据库管理工具,由 Quest Software 公司开发,提供了数据库设计、开发、...

    mysql/oracle数据字典生成工具

    标签中的"数据字典"强调了工具的核心功能,"mysql/oracle"表明其跨平台兼容性,支持两种主流的关系型数据库系统。"字典生成工具"和"word数据字典"进一步明确了工具的用途,即生成以Word格式呈现的数据字典。 压缩包...

    Oracle数据库导出数据工具

    这两种工具都有其特定的用途和优缺点。 1. **Data Pump (expdp)**: Data Pump 是Oracle 10g引入的新特性,它的主要优点是速度快,可以并行处理,支持直接路径写入,减少了I/O操作,提高了数据传输效率。使用expdp...

    Mysql转oracle工具

    MySQL到Oracle转换是一个常见的任务,特别是在企业级应用迁移或整合过程中。...同时,由于两种数据库的管理习惯和最佳实践可能不同,因此还需要熟悉Oracle的最佳实践,以提高数据库的稳定性和效率。

    免安装oracle客户端及配置方法(11_2)

    总的来说,免安装Oracle Instant Client提供了一种简便的方法来为多台客户端计算机设置Oracle连接,减少了系统资源的占用和管理的复杂性。只需下载、解压、配置环境变量和TNS连接,就可以实现与Oracle服务器的通信。...

    Oracle全文搜索设置方法

    Oracle全文搜索是数据库管理系统Oracle中的一种高级特性,用于在文本数据中执行复杂的全文本查询。在Oracle中,全文搜索依赖于Intermedia技术,这是一项提供多种类型的数据(如文本、图像和声音)的多媒体处理能力的...

    Sql Server至ORACLE 数据迁移

    总的来说,从SQL Server到Oracle的数据迁移是一项复杂任务,涉及到数据库设计、数据类型映射、数据转换和大量测试。在进行迁移前,一定要充分规划,备份源数据,并在非生产环境中进行预迁移测试,以确保迁移的成功和...

    oracle实现阶梯式累加

    在Oracle数据库中,实现阶梯式累加是一种常见的需求,尤其在处理财务数据、员工薪资统计等场景时尤为突出。本文将详细介绍如何利用Oracle数据库特有的功能来实现阶梯式累加,并通过一个具体的示例来演示整个过程。 ...

Global site tag (gtag.js) - Google Analytics