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 ...
随机推荐
- Java常用类-Object类
一.java.lang.Object类 1.Object类是所有Java类的根父类 2.如果在类的声明中未使用extends关键字指明其父类,则默认父类为java.lang.Object类 3.Obj ...
- 美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在1935~1936年应邀来中国清华大学讲学。 一次,他参加某个重要会议,年轻的脸孔引人注目。于是有人询问他的年龄,他回答说:我年龄的立方是个4位数。 我年龄的4次方是个6位数。这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。” 请你推算一下,他当时到底有多年轻。 结果只有一个数。
#include<stdio.h>int main(){ int age=1; int san=0; int si=0; int sum=0; while(age>0) { san= ...
- TCP 进阶
转自: https://www.cnblogs.com/caoyusongnet/p/9087633.html 一. 端口号 标准的端口号由 Internet 号码分配机构(IANA)分配.这组数字被 ...
- js常见删除绑定的事件
1. elem.onclick = null / false; //直接解除 例子如下: var div = document.getElemetById('id'); div.onclick = ...
- git本地创建分支,并提交到github上去
很多时候,我们再开发的时候需要分支. 那么怎么在本地创建分支,并提交到github或者是远程仓库中呢? 其实很简单: 第一步: git checkout -b dev 创建新的分支 第二步: ...
- React js ReactDOM.render 语句后面不能加分号
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title&g ...
- C#数据结构与算法系列(二十三):归并排序算法(MergeSort)
1.介绍 归并排序(MergeSort)是利用归并的思想实现的排序方法,该算法采用经典的分治策略(分治法将问题分(divide)成一些小的问题然后递归求解, 而治(conquer)的阶段则将分的阶段得 ...
- linux : 新服务器部署项目要做的事
环境:阿里云服务器两台,一台web,一台db,系统centos7. 用户用外网访问web server ,web server 再去访问db server. 1 阿里云控制台进入系统2 SSH进入系统 ...
- IDEA 2020.1.2安装破解激活 idea 2020.1.3下载 安装 一键破解
IDEA 2020.1.2 idea 2020.1.3下载 安装 破解 本项目只做个人学习研究之用,不得用于商业用途!若资金允许,请点击链接购买正版,谢谢合作!学生凭学生证可免费申请正版授权!创业公司 ...
- sql 大小写查询 字符串替换 小写xx 改为大写XX
--sql 大小写查询 select * from 表 where 字段 collate Chinese_PRC_CS_AS='xx' --替换 小写xx 改为大写XX update 表 set ...