有时候需要做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=''
);
i :=i +1;
END LOOP;
COMMIT;
END;

然而上段代码的执行速度并不快,因为犯了一个忌讳,查询和插入的表为同一张表,如果从另一张临时表查询,插入

想要插入的表中,执行速度会很快。

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

begin
proc_msw_strsql;
end;

也可以DEBUG存储过程。

找到过程,右键点击调试,出现以下错误:

ORA-01031: insufficient privileges
ORA-06512: at "SYS.DBMS_DEBUG_JDWP", line 68
ORA-06512: at line 1
This session requires DEBUG CONNECT SESSION and DEBUG ANY PROCEDURE user privileges.

说明没有DEBUG权限,替换用户并执行:

GRANT debug any procedure, debug connect session TO USERXXX;

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

  1. oracle存储过程批量插入测试数据

    前几天测试中债时,自定义资产有一级类型和二级类型,一级类型下有很多分类,每个分类下又有很多二级分类,而要做的是每种类型都要建立一个自定义资产,并做一笔交易,然后测试是否出值,于是写了一个存储过程批量插 ...

  2. Oracle 存储过程批量插入数据

    oracle 存储过程批量插入大量数据 declare numCount number; userName varchar2(512); email varchar2(512); markCommen ...

  3. PG数据库创建并执行存储过程批量插入数据

    记录一下PG数据库创建并执行存储过程批量插入数据的SQL: create or replace function addId() returns boolean AS $BODY$ declare i ...

  4. oracle+mybatis批量插入踩坑记

    最近在项目中需要使用oracle+mybatis批量插入数据,因为自增主键,遇到问题,现记录如下: 一.常用的两种sql写法报错 1.insert ... values ... <insert ...

  5. mybatis oracle mysql 批量插入时的坑爹问题--需谨记

    mybatis oracle mysql 批量插入一.oracle的批量插入方式insert into db(id, zgbh, shbzh) select '1', '2', '3' from du ...

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

    首先登陆进入Mysql命令行  执行sql      show variables like 'slow_query%';  结果为OFF 说明还未开启慢查询 执行sql     show varia ...

  7. oracle+ibatis 批量插入-支持序列自增

    首先请先看我前面一篇帖子了解oracle批量插入的sql:[oracle 批量插入-支持序列自增] 我用的ibatis2.0,sqlMap文件引入的标签如下: <!DOCTYPE sqlMap ...

  8. sqlserver存储过程批量插入数据

    在系统中经常会遇到向数据库中批量插入数据情况,存储过程中没有数组,只有通过字符串分割循环插入,下面是一个本人研究的一个例子: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 c ...

  9. mysql应用存储过程批量插入数据

    --批量插入数据的sql语句 delimiter $$ DROP PROCEDURE IF EXISTS `test.sp_insert_batch` $$ CREATE DEFINER =`root ...

随机推荐

  1. bzoj3062[Usaco2013 Feb]Taxi*

    bzoj3062[Usaco2013 Feb]Taxi 题意: Bessie在农场上为其他奶牛提供出租车服务,她必须赶到这些奶牛的起始位置,并把他们带到它们的目的地.Bessie的车很小,所以她只能一 ...

  2. Crystal Reports --报表设计

    完整的报表解决方案 数据访问—>报表设计—>报表管理—>与应用系统集成 一.规划报表 设计报表的准备工作 谁看报表? 报表的数据是什么?(页眉页脚的内容?是否需要分组?是否需要汇总? ...

  3. Ethical Hacking - NETWORK PENETRATION TESTING(6)

    Creating a fake access point (honeypot) Fake access points can be handy in many scenarios, one examp ...

  4. OpenLDAP 2.4.44 安装部署避坑指南

    写在前面: 有关openLDAP的部署文档在网上随意能找到很多,但是最近用到才发现网上的教程多数是旧版的用法,例如"/etc/openldap/slapd.conf “早已弃用,更有甚者直接 ...

  5. ISE和modelsim的配合

    modelsim好强呀,我在ISE中在编写时clk不小心把input写成了inout,ISE也没有给我报错:在modelsim中仿真时提示出这个错误了!

  6. 利用python实现平稳时间序列的建模方式

    一.平稳序列建模步骤 假如某个观察值序列通过序列预处理可以判定为平稳非白噪声序列,就可以利用ARMA模型对该序列进行建模.建模的基本步骤如下: (1)求出该观察值序列的样本自相关系数(ACF)和样本偏 ...

  7. 检查string是否有重复尝试用map

    链接: 题意:输入一些单词,找出所有满足如下条件的单词:该单词不能通过字母重排,得到输入文本的另外一个单词.在判断是否满足条件时,字母不分大小写,但在输出时应保留输入的大小写,按字典序排列. 题解:先 ...

  8. yum下载软件包

    方法一: downloadonly插件有一个yum的插件叫做downloadonly,就是只下载不安装的意思.1. 安装插件yum install yum-download2. 下载yum updat ...

  9. 删除GIT中的.DS_Store

    转载自:https://www.jianshu.com/p/fdaa8be7f6c3 .DS_Store 是什么 使用 Mac 的用户可能会注意到,系统经常会自动在每个目录生成一个隐藏的 .DS_St ...

  10. PHP array_udiff_uassoc() 函数

    实例 比较两个数组的键名和键值(使用用户自定义函数进行比较),并返回差集: <?phpfunction myfunction_key($a,$b){if ($a===$b){return 0;} ...