Oracle 存储过程 批量插入测试数据

有时候需要做DB的效率测试时,需要模拟大量数据。可以根据一条原始数据,通过执行存储过程拷贝出大量数据:

CREATE OR REPLACE PROCEDURE proc_msw_strsql
IS
  i INT;
BEGIN
  i      :=1;
  WHILE i<=100000
  LOOP
    INSERT
    INTO REP_DATAF_07_0
      (SELECT REP_DATAF_07_ITEMID_SEQ.nextval AS PKID,
          ORGAN_ID,
          REPORT_ID,
          ITEM_ID,
          REPORT_DATE,
          CREATE_DATE,
          ITEMVALUE1,
          ITEMVALUE2,
          ITEMVALUE3,
          ITEMVALUE4,
          ITEMVALUE5,
          ITEMVALUE6,
          ITEMVALUE7,
          ITEMVALUE8,
          ITEMVALUE9,
          ITEMVALUE10,
          ITEMVALUE11,
          ITEMVALUE12,
          ITEMVALUE13,
          ITEMVALUE14,
          ITEMVALUE15,
          ITEMVALUE16,
          ITEMVALUE17,
          ITEMVALUE18,
          ITEMVALUE19,
          ITEMVALUE20,
          ITEMVALUE21,
          ITEMVALUE22,
          ITEMVALUE23,
          ITEMVALUE24,
          ITEMVALUE25,
          ITEMVALUE26,
          ITEMVALUE27,
          ITEMVALUE28,
          ITEMVALUE29,
          ITEMVALUE30,
          ITEMVALUE31,
          ITEMVALUE32,
          ITEMVALUE33,
          ITEMVALUE34,
          ITEMVALUE35,
          ITEMVALUE36,
          ITEMVALUE37,
          ITEMVALUE38,
          ITEMVALUE39,
          ITEMVALUE40,
          ITEMVALUE41,
          ITEMVALUE42,
          ITEMVALUE43,
          ITEMVALUE44,
          ITEMVALUE45,
          ITEMVALUE46,
          ITEMVALUE47,
          ITEMVALUE48,
          ITEMVALUE49,
          ITEMVALUE50,
          ITEMVALUE51,
          ITEMVALUE52,
          ITEMVALUE53,
          ITEMVALUE54,
          ITEMVALUE55,
          ITEMVALUE56,
          ITEMVALUE57,
          ITEMVALUE58,
          ITEMVALUE59,
          ITEMVALUE60,
          ITEMVALUE61,
          ITEMVALUE62,
          ITEMVALUE63,
          ITEMVALUE64,
          ITEMVALUE65,
          ITEMVALUE66,
          ITEMVALUE67,
          ITEMVALUE68,
          ITEMVALUE69,
          ITEMVALUE70,
          ITEMVALUE71,
          ITEMVALUE72,
          ITEMVALUE73,
          ITEMVALUE74,
          ITEMVALUE75,
          ITEMVALUE76,
          ITEMVALUE77,
          ITEMVALUE78,
          ITEMVALUE79,
          ITEMVALUE80,
          ITEMVALUE81,
          ITEMVALUE82,
          ITEMVALUE83,
          ITEMVALUE84,
          ITEMVALUE85,
          ITEMVALUE86,
          ITEMVALUE87,
          ITEMVALUE88,
          ITEMVALUE89,
          ITEMVALUE90,
          ITEMVALUE91,
          ITEMVALUE92,
          ITEMVALUE93,
          ITEMVALUE94,
          ITEMVALUE95,
          ITEMVALUE96,
          ITEMVALUE97,
          ITEMVALUE98,
          ITEMVALUE99,
          ITEMVALUE100,
          ITEMVALUE101,
          ITEMVALUE102,
          ITEMVALUE103,
          ITEMVALUE104,
          ITEMVALUE105,
          ITEMVALUE106,
          ITEMVALUE107,
          ITEMVALUE108,
          ITEMVALUE109,
          ITEMVALUE110,
          ITEMVALUE111,
          ITEMVALUE112,
          ITEMVALUE113,
          ITEMVALUE114,
          ITEMVALUE115,
          ITEMVALUE116,
          ITEMVALUE117,
          ITEMVALUE118,
          ITEMVALUE119,
          ITEMVALUE120,
          ITEMVALUE121,
          ITEMVALUE122,
          ITEMVALUE123,
          ITEMVALUE124,
          ITEMVALUE125,
          ITEMVALUE126,
          ITEMVALUE127,
          ITEMVALUE128,
          ITEMVALUE129,
          ITEMVALUE130,
          ITEMVALUE131,
          ITEMVALUE132,
          ITEMVALUE133,
          ITEMVALUE134,
          ITEMVALUE135,
          ITEMVALUE136,
          ITEMVALUE137,
          ITEMVALUE138,
          ITEMVALUE139,
          ITEMVALUE140
        FROM REP_DATAF_07_0
        WHERE PKID=‘332‘
      );
    i :=i +1;
  END LOOP;
  COMMIT;
END;

写好存储过程之后,编译一下。然后执行调用存储过程的代码:

begin
proc_msw_strsql;
end;

时间: 2024-10-17 21:19:01

Oracle 存储过程 批量插入测试数据的相关文章

C++完成Oracle存储过程批量插入(一)

为了满足大数据量的批量插入这个需求,最近研究了一下Oracle数据库的批量插入这块儿,本篇先介绍一下这两天来所了解到的以及一次不成功的C++进行存储过程批量插入方案. 一.Oracle处理批量插入存储过程 1.Oracle处理批量插入涉及到的相关概念有:Type.bulk collect.Oracle数组等.现在对它们依次简单的介绍一下. 1)Type Type主要用于用户建立Oracle自定义类型. Type常用的自定义类型介绍: A.子类型 类似与全局定义的常量,只要改一处地方,与此常量相关

C++完成Oracle存储过程批量插入(二)

上篇文章简单的介绍了一下oracle参数是Object类型的数据库存储过程,以及JAVA使用JDBC去调用该类的存储过程的方法.但是我需要的是C++下的方案,使用Poco库未发现任何可以调用该类型存储过程的方法,但是功能还是需要实现的,后来发现Oracle支持XML的解析,于是有了下面的方案,即存储过程的参数为CLOB类型,C++按照传入XML格式字符串的方式调用存储过程,在存储过程中解析xml后,将数据插入数据库中. (有了上述的方案后,我猜想JDBC的处理方式可能也是往Oracle数据库中传

C++完毕Oracle存储过程批量插入(二)

上篇文章简单的介绍了一下oracle參数是Object类型的数据库存储过程,以及JAVA使用JDBC去调用该类的存储过程的方法. 可是我须要的是C++下的方案.使用Poco库未发现不论什么能够调用该类型存储过程的方法,可是功能还是须要实现的,后来发现Oracle支持XML的解析,于是有了以下的方案.即存储过程的參数为CLOB类型,C++依照传入XML格式字符串的方式调用存储过程,在存储过程中解析xml后.将数据插入数据库中. (有了上述的方案后,我猜想JDBC的处理方式可能也是往Oracle数据

postgres 使用存储过程批量插入数据

参考资料(pl/pgsql 官方文档): http://www.postgresql.org/docs/9.3/static/plpgsql.html create or replace function creatData2() returns boolean AS $BODY$ declare ii integer; begin II:=1; FOR ii IN 1..10000000 LOOP INSERT INTO ipm_model_history_data (res_model, r

Mybatis 针对oracle的批量插入

xml文件参数对象: 1 public class Columns{ 2 private String basedate_code; 3 private String tableName; 4 private String codeDescribeindex; 5 private String codeInfoindex; 6 private String codePymindex; 7 private List<Info> infos; Dao层方法: public void bulkIns

Mysql慢查询开启和查看 ,存储过程批量插入1000万条记录进行慢查询测试

首先登陆进入Mysql命令行  执行sql      show variables like 'slow_query%';  结果为OFF 说明还未开启慢查询 执行sql     show variables like 'long_query_time';  可以看到具体的慢查询 ""时限" 我们先开启慢查询 执行sql set global slow_query_log='ON'; 这是再去查询一下(show variables like 'slow_query%';)发现

sqlserver存储过程批量插入数据

在系统中经常会遇到向数据库中批量插入数据情况,存储过程中没有数组,只有通过字符串分割循环插入,下面是一个本人研究的一个例子: create proc [dbo].[Proc_TestBatchMainDetailIns] @mainName nvarchar(50),@detailNameStr nvarchar(max),@detailAgeStr nvarchar(max), @detailRowCount int=1,@tmpFlag int=1,@newMainId int=0 as b

解决Oracle+Mybatis批量插入报错:SQL 命令未正确结束

Mybatis批量插入需要foreach元素.foreach元素有以下主要属性: (1)item:集合中每一个元素进行迭代时的别名. (2)index:指定一个名字,用于表示在迭代过程中,每次迭代到的位置. (3)collection:根据传入的参数值确定. (4)open:表示该语句以什么开始. (5)separator:表示在每次进行迭代之间以什么符号作为分隔 符. (6)close:表示以什么结束. 首先,错误的xml配置文件如下: <insert id="save" da

oracle mybatis 批量插入遇到的问题

1.这是一个很蛋疼的问题,用<insert>的话会一直报sql语法错误,我这里改用<update>测试OK,用<select>貌似也行 2.批量插入带oracle序列递增遇到的错误:java.sql.SQLSyntaxErrorException: ORA-02287: 此处不允许序号 查资料说有很多限制 Restrictions on Sequence Values You cannot use CURRVAL and NEXTVAL in thefollowing