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')执行存储过程,执行过后一下子就生成了所有需要的数据

转载于:https://www.cnblogs.com/NieXiaoHui/p/5917340.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值