51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 1514|回复: 1
打印 上一主题 下一主题

oracle存储过程批量插入测试数据

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-6-6 11:00:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
前几天测试中债时,自定义资产有一级类型和二级类型,一级类型下有很多分类,每个分类下又有很多二级分类,而要做的是每种类型都要建立一个自定义资产,并做一笔交易,然后测试是否出值,于是写了一
个存储过程批量插入,记录一下.

  1. create or replace procedure prd_tru_ydbb(account VARCHAR2) is--account是传入的参数,存储过程调用时传入
  2.   firstcount  NUMBER;--一级分类类型数量
  3.   secondcount NUMBER;--二级分类类型数量
  4.   code sys_dict1.dictkey%type;--查询二级资产类型code(%type表示code变量的类型和sys_dict1表的dictkey字段相同)
  5.   uuid tru_info.TRUSTUUID%type;--自定义资产uuid
  6.   i number:=1;--计数器
  7.   trudealseqno tru_deal.SEQNO%type;
  8.   chbuuid CHB_ASSET_ATTRVALUE.PROPID%type;
  9. BEGIN
  10.   SELECT COUNT(*)
  11.   INTO firstcount
  12.   FROM sys_dict1
  13.   WHERE dictcode='ASSETTYPE_CHBEX';--查询一级分类数量并赋值给变量firstcount
  14.   DECLARE CURSOR firsttype IS  SELECT * FROM sys_dict1 WHERE dictcode='ASSETTYPE_CHBEX';--新建游标firsttype,存储所有一级类型
  15.   BEGIN
  16.     FOR FIRST IN firsttype LOOP--一级循环开始
  17.       if (first.dictkey='ASTTRUST')
  18.         then code:='ASTTRUSTEX';
  19.       elsif(first.dictkey='OTHTRUST')
  20.         then code:='OTHTRUSTEX';
  21.       elsif(first.dictkey='XDZC')
  22.         then code:='XDZCEX';
  23.       else
  24.         code:=first.dictkey;
  25.       end if;
  26.       DECLARE CURSOR secondtype IS SELECT * FROM sys_dict1 WHERE dictcode=code;--新建游标secondtype,存储所有二级类型
  27.       BEGIN
  28.         FOR second IN secondtype LOOP--二级循环开始
  29.           select f_guid() into uuid  from dual;
  30.           --插入自定义资产基本信息
  31.             --Insert into TRU_INFO....(这里的values中就可以使用secondtype.字段名来插入不同的数据,为了区分资产编号,可以使用'ZDY0'||i来设置不同的资产编号,资产名称可以使用second.dictvalue  --中债要素插入
  32.             select f_guid() into chbuuid  from dual;
  33.             --Insert into CHB_ASSET_ATTRVALUE...--自定义资产交易插入
  34.           select f_guid() into trudealseqno from dual;
  35.           --Insert into TRU_DEAL() valuse()...
  36.           i:=i+1;
  37.         END LOOP;
  38.       END;--二级循环结束
  39.     END LOOP;
  40.     commit;
  41.   END;--一级循环结束
  42. END;
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1
回复

使用道具 举报

该用户从未签到

2#
发表于 2018-7-30 15:24:22 | 只看该作者
学习了,很棒!
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-5-6 19:03 , Processed in 0.064579 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表