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 ...
随机推荐
- DirectX11 With Windows SDK--34 位移贴图
前言 在前面的章节中,我们学到了法线贴图和曲面细分.现在我们可以将这两者进行结合以改善效果,因为法线贴图仅仅只是改善了光照的细节,但它并没有从根本上改善几何体的细节.从某种意义上来说,法线贴图只是一个 ...
- html-webpack-plugin在html中插入数据
html-webpack-plugin在html中插入数据 <!DOCTYPE html> <html> <head> <meta charset=" ...
- INS-40718 和 INS - 30516
RAC 安装的时候报错, INS-40718 这个是自己填写的 scan name 和 /etc/hosts 里定义的不一致 可以cat /etc/hosts 看一下 INS - 30 ...
- 云原生时代高性能Java框架—Quarkus(一)
--- Quarkus&GraalVM介绍.创建并启动第一个项目 Quarkus系列博文 Quarkus&GraalVM介绍.创建并启动第一个项目 构建Quarkus本地镜像.容器化部 ...
- [redis] -- 过期策略篇
过期处理 定期删除 redis默认是每隔 100ms 就随机抽取一些设置了过期时间的key,检查其是否过期,如果过期就删除 惰性删除 定期删除可能会导致很多过期 key 到了时间并没有被删除掉.所以就 ...
- Python学习周期 学习Python要多久?
学习python编程需要多长时间?首先我们需要明确一点,在互联网技术领域,技术始终在不断的迭代升级,只要进入IT行业就要时刻保持学习的状态,才能不被技术进步的车轮碾压.我们目前讨论的python学习周 ...
- 虚拟化-SDDC软件定义数据中心
一.什么是SDDC? SDDC依赖于虚拟化和云计算技术, SDDC的目标是虚拟化数据中心的一切物理资源,通过虚拟化的技术,构建一个由虚拟资源组成的资源池,不仅是对服务器进行虚拟化,还包括存储虚拟化和网 ...
- C踩坑纪实——(一)
最近在项目过程中发现了几个c语言中没有注意到的小细节,成功入坑.下面记录的我遇到的问题,以及解决的方法,希望这个过程能给读者带来些许启发. 字符类型变量的溢出 首先来看下面这段代码,你认为会输出什么呢 ...
- Java基础知识_内存
前述:利用一段较为充足暑假时间,对以前的Java学习进行一个系统性的回顾,对于部分知识点进行记录和积累. Java中的内存 一 Java中的内存划分: Java中内存主要划分为五部分 栈(Stack) ...
- Git文件合并
两个分支:主分支master,分支pre 1.将pre分支文件合并到master分支: 切换到master分支下操作: 合并文件夹[如果是文件则为a.text b.text]: git checkou ...