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=''
);
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 存储过程 批量插入测试数据的更多相关文章
- oracle存储过程批量插入测试数据
前几天测试中债时,自定义资产有一级类型和二级类型,一级类型下有很多分类,每个分类下又有很多二级分类,而要做的是每种类型都要建立一个自定义资产,并做一笔交易,然后测试是否出值,于是写了一个存储过程批量插 ...
- Oracle 存储过程批量插入数据
oracle 存储过程批量插入大量数据 declare numCount number; userName varchar2(512); email varchar2(512); markCommen ...
- PG数据库创建并执行存储过程批量插入数据
记录一下PG数据库创建并执行存储过程批量插入数据的SQL: create or replace function addId() returns boolean AS $BODY$ declare i ...
- oracle+mybatis批量插入踩坑记
最近在项目中需要使用oracle+mybatis批量插入数据,因为自增主键,遇到问题,现记录如下: 一.常用的两种sql写法报错 1.insert ... values ... <insert ...
- mybatis oracle mysql 批量插入时的坑爹问题--需谨记
mybatis oracle mysql 批量插入一.oracle的批量插入方式insert into db(id, zgbh, shbzh) select '1', '2', '3' from du ...
- Mysql慢查询开启和查看 ,存储过程批量插入1000万条记录进行慢查询测试
首先登陆进入Mysql命令行 执行sql show variables like 'slow_query%'; 结果为OFF 说明还未开启慢查询 执行sql show varia ...
- oracle+ibatis 批量插入-支持序列自增
首先请先看我前面一篇帖子了解oracle批量插入的sql:[oracle 批量插入-支持序列自增] 我用的ibatis2.0,sqlMap文件引入的标签如下: <!DOCTYPE sqlMap ...
- sqlserver存储过程批量插入数据
在系统中经常会遇到向数据库中批量插入数据情况,存储过程中没有数组,只有通过字符串分割循环插入,下面是一个本人研究的一个例子: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 c ...
- mysql应用存储过程批量插入数据
--批量插入数据的sql语句 delimiter $$ DROP PROCEDURE IF EXISTS `test.sp_insert_batch` $$ CREATE DEFINER =`root ...
随机推荐
- Go Pentester - HTTP CLIENTS(2)
Building an HTTP Client That Interacts with Shodan Shadon(URL:https://www.shodan.io/) is the world' ...
- Ethical Hacking - GAINING ACCESS(9)
Server Side Attack Nexpose - Analysing Scan Results and Generating Reports OS and Software Inforatio ...
- pyinstall打包资源文件
相关代码 main.py import sys import os #生成资源文件目录访问路径 #说明: pyinstaller工具打包的可执行文件,运行时sys.frozen会被设置成True # ...
- R星游戏如何绑定二次验证码_虚拟MFA_两步验证_谷歌身份验证器?
一般点账户名——设置——安全设置中开通虚拟MFA两步验证 具体步骤见链接 R星游戏如何绑定二次验证码_虚拟MFA_两步验证_谷歌身份验证器? 二次验证码小程序于谷歌身份验证器APP的优势 1.无需下载 ...
- python thrift 实现 单端口多服务的过程
Thrift 是一种接口描述语言和二进制通信协议.以前也没接触过,最近有个项目需要建立自动化测试,这个项目之间的微服务都是通过 Thrift 进行通信的,然后写自动化脚本之前研究了一下. 需要定义一个 ...
- DataTable 转 JSON,XML转JSON
今天总结一下关于DataTable,XML转JSON的方法: 首先需要引入命名空间: using Newtonsoft.Json 1 public string DataTableToJsonWith ...
- Python语言及其应用|PDF高清完整版免费下载|百度云盘|Python
百度云盘:Python语言及其应用PDF高清完整版免费下载 提取码:6or6 内容简介 本书介绍Python 语言的基础知识及其在各个领域的具体应用,基于最新版本3.x.书中首先介绍了Python 语 ...
- 一个文本框的andriod教程
https://blog.csdn.net/androidmsky/article/details/49870823
- SQL数据库优化总结
1.在表中建立索引优先考虑 where.group by使用到的数据. 2.查询的sql语句中不要使用select * ,因为会返回许多无用的字段降低查询的效率,应该使用具体的字段代替*,只返回使用到 ...
- redis实操-sentinel
本文主要记录一些操作步骤,作为自己学习的一个记录,也供虚拟机上学习redis的人参考. 实操篇,可以参考 http://redis.cn/ 主从复制实操 在test目录下新建配置进行练习 1.mkdi ...