oracle存储过程批量插入测试数据
前几天测试中债时,自定义资产有一级类型和二级类型,一级类型下有很多分类,每个分类下又有很多二级分类,而要做的是每种类型都要建立一个自定义资产,并做一笔交易,然后测试是否出值,于是写了一个存储过程批量插入,记录一下.
create or replace procedure prd_tru_ydbb(account VARCHAR2) is--account是传入的参数,存储过程调用时传入
firstcount NUMBER;--一级分类类型数量
secondcount NUMBER;--二级分类类型数量
code sys_dict1.dictkey%type;--查询二级资产类型code(%type表示code变量的类型和sys_dict1表的dictkey字段相同)
uuid tru_info.TRUSTUUID%type;--自定义资产uuid
i number:=1;--计数器
trudealseqno tru_deal.SEQNO%type;
chbuuid CHB_ASSET_ATTRVALUE.PROPID%type;
BEGIN
SELECT COUNT(*)
INTO firstcount
FROM sys_dict1
WHERE dictcode='ASSETTYPE_CHBEX';--查询一级分类数量并赋值给变量firstcount
DECLARE CURSOR firsttype IS SELECT * FROM sys_dict1 WHERE dictcode='ASSETTYPE_CHBEX';--新建游标firsttype,存储所有一级类型
BEGIN
FOR FIRST IN firsttype LOOP--一级循环开始
if (first.dictkey='ASTTRUST')
then code:='ASTTRUSTEX';
elsif(first.dictkey='OTHTRUST')
then code:='OTHTRUSTEX';
elsif(first.dictkey='XDZC')
then code:='XDZCEX';
else
code:=first.dictkey;
end if;
DECLARE CURSOR secondtype IS SELECT * FROM sys_dict1 WHERE dictcode=code;--新建游标secondtype,存储所有二级类型
BEGIN
FOR second IN secondtype LOOP--二级循环开始
select f_guid() into uuid from dual;
--插入自定义资产基本信息
--Insert into TRU_INFO....(这里的values中就可以使用secondtype.字段名来插入不同的数据,为了区分资产编号,可以使用'ZDY0'||i来设置不同的资产编号,资产名称可以使用second.dictvalue --中债要素插入
select f_guid() into chbuuid from dual;
--Insert into CHB_ASSET_ATTRVALUE...--自定义资产交易插入
select f_guid() into trudealseqno from dual;
--Insert into TRU_DEAL() valuse()...
i:=i+1;
END LOOP;
END;--二级循环结束
END LOOP;
commit;
END;--一级循环结束
END;
然后使用exec prd_tru_ydbb('account')执行存储过程,执行过后一下子就生成了所有需要的数据
oracle存储过程批量插入测试数据的更多相关文章
- Oracle 存储过程 批量插入测试数据
有时候需要做DB的效率测试时,需要模拟大量数据.可以根据一条原始数据,通过执行存储过程拷贝出大量数据: CREATE OR REPLACE PROCEDURE proc_msw_strsql IS i ...
- 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 ...
随机推荐
- 大数据入门第二十二天——spark(二)RDD算子(1)
一.RDD概述 1.什么是RDD RDD(Resilient Distributed Dataset)叫做分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变.可分区.里面的元素可并行计算的 ...
- 20155307《网络对抗》Web安全基础实践
20155307<网络对抗>Web安全基础实践 基础问题回答 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL ...
- Java实现Zip压缩包解压
对zip压缩包的解压是比较常见的应用场景,java代码的实现也很简单.废话不多说,直接上代码吧 一.代码 /** * zip解压 * @param srcFile zip源文件 * @para ...
- 【第九课】MriaDB密码重置和慢查询日志
目录 1.如何进行修改MariaDB的密码 2.Mariadb的慢查询日志 1.如何进行修改MariaDB的密码 记得root密码的修改方式: [root@localhost ~]# mysqladm ...
- libgdx学习记录18——Box2d物理引擎
libgdx封装了Box2D物理引擎,通过这个引擎能够模拟物理现实,使设计出的游戏更具有真实感. libgdx中,Box2d程序的大概过程: 1. 创建物理世界world,并设置重力加速度. 2. 创 ...
- falsk之文件上传
在使用flask定义路由完成文件上传时,定义upload视图函数 from flask import Flask, render_template from werkzeug.utils import ...
- 《Effective Java》 学习笔记 —— 并发
<Effective Java>第二版学习笔记之并发编程. 第66条 同步访问共享的可变数据 * 关键字synchronized可以保证在同一时刻只有一个线程可以执行某个方法或代码块. * ...
- HTML5 标签实例
html 5 学习1.<p></p> #段落元素定义2.<h1></h1> #标题 h1代表大号的字体.依此变小3.<br /> #实例 代 ...
- 关于Java开发一职的经验
本人为大四软件工程学生,由于准备不充分也没有前人指点,去年10月份才赶上秋招节奏,然后签下了一家比较起来还行的公司.所以不太期望大家有求职意愿但苦于不知作何准备,所以特列以下知识点检索供大家查阅.如果 ...
- idou老师教你学istio :基于角色的访问控制
istio的授权功能,也称为基于角色的访问控制(RBAC),它为istio服务网格中的服务提供命名空间级别.服务级别和方法级别的访问控制.基于角色的访问控制具有简单易用.灵活和高性能等特性.本文介绍如 ...