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 ...
随机推荐
- 十二生肖swift1.2
2015年八月的最后一个星期,暑假就快落幕,说起来觉得这个暑假挺后悔没去实习,就在项目组里这边打打酱油,这里做点修改,不过自学了一些mapnik,还有nodejs和django的基础开发,其实还是很喜 ...
- odoo 打印单
<td style="word-wrap:break-word;width:20%;font-size:16"> <t t-foreach="l.pro ...
- Docker一键部署Hadoop心得(一)
最近一直在折腾使用docker一键部署全分布式hadoop集群,虽然一键部署的脚本写好了并且可以成功运行出各个节点,但在运行一个wordcount实例时出现了错误,错误如下: java.io.IOEx ...
- WPF编程,使用WindowChrome实现自定义窗口功能的一种方法。
原文:WPF编程,使用WindowChrome实现自定义窗口功能的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/arti ...
- 汇编 循环位移指令 ROL, 循环位移指令 ROR
知识点: 循环位移指令 ROL 循环位移指令 ROR 一.循环位移指令 ROL ROR int i=0x77886611;//01110111100010000110011000010001 ...
- 使用ClosedXML,读取到空行
最近项目中使用了ClosedXML.dll来处理Excel,在读取Excel的时候,用workSheet.Rows()获取Excel行数,默认读取Excel最大行数1048576 所以为了读取到不是空 ...
- 2014.8.23 Research Meeting Report
Dear All: It was good talk yesterday. However, I want to emphasize that, finally it is the *work* an ...
- 利用matlab写一个简单的拉普拉斯变换提取图像边缘
可以证明,最简单的各向同性微分算子是拉普拉斯算子.一个二维图像函数 f(x,y) 的拉普拉斯算子定义为 其中,在 x 方向可近似为 同理,在 y 方向上可近似为 于是 我们得到满足以上三个 ...
- 关于k8s这项大动作,预示着边缘计算迎来“开源”发展的新周期……
在文章<最近在边缘计算领域,发生了一件足以载入物联网史册的大事…>我曾经提到Kubernetes(简称K8s)将从超大规模云计算环境,被带入到物联网边缘计算场景中. 事情有了新进展,从本周 ...
- java中多态的实现机制
多态的概念: 简单来说就是事物在运行过程中存在的不同状态,即父类或接口定义的引用变量指向子类或具体实现类的实例对象.程序调用方法在运行期才进行动态绑定,而不是引用变量的类型中定义的方法. 多态存在的前 ...