DB2 存储过程,循环插入数据(用户自测造大量数据)


表结构如下

CREATE TABLE
    FUND_DAILY_INCOME
    (
        ID BIGINT NOT NULL GENERATED ALWAYS AS IDENTITY,
        ACCOUNT_NO VARCHAR(32),
        CREATED_TIME TIMESTAMP,
        FUND_CODE VARCHAR(8),
        SHARE_HOLDING VARCHAR(15),
        INCOME_DATE VARCHAR(10),
        INCOME_AMOUNT BIGINT,
        MERGE_FLAG VARCHAR(1),
        OFFSET_FLAG VARCHAR(1),
        UPDATE_TIME TIMESTAMP,
        COMPANY_CODE VARCHAR(16),
        ALL_INCOME DECIMAL(19,0) DEFAULT 0,
        HOLDING_INCOME DECIMAL(19,0) DEFAULT 0,
        PLAT_ID BIGINT DEFAULT 10000,
        SERVICE_TYPE VARCHAR(2) DEFAULT '01',
        SERVICE_CODE VARCHAR(32) DEFAULT '10000',
        PRIMARY KEY (ID)
    );


循环插入数据的临时存储过程

 --/  
  
 BEGIN   
   DECLARE v_date  date  ;  
   DECLARE v_date_str varchar(20) ;
   DECLARE str varchar(20) ;
   DECLARE i  INTEGER ;  
   DECLARE val  INTEGER ; 
   declare    sqlStr   varchar(1000);   
   
   
   set  v_date = to_date( '2014-01-01' ,'yyyy-mm-dd'); 
   set v_date_str =  to_char( v_date ,'yyyy-mm-dd') ;
   REPEAT   
       
              set i = 1 ;
              REPEAT      
               
               SET sqlStr =' INSERT INTO FUND_DAILY_INCOME (  ACCOUNT_NO, CREATED_TIME,  FUND_CODE, SHARE_HOLDING, INCOME_DATE,  INCOME_AMOUNT, MERGE_FLAG, OFFSET_FLAG, UPDATE_TIME, COMPANY_CODE  ) VALUES  ' 
               ||  '  (  ''1'', current timestamp , ''1'', ''1'',  '''||  v_date_str ||''' , 0, ''1'', ''1'', current timestamp , ''1'' ) ' ;   
               EXECUTE IMMEDIATE sqlStr;       
               set i = i +1 ;   
               UNTIL ( i > 101)  
               END REPEAT;    
       set v_date =   v_date +1 day ; 
       set v_date_str = to_char( v_date ,'yyyy-mm-dd') ;
       set str =  to_char( v_date ,'yyyymmdd') ;
       set val = integer(str) ;
   UNTIL ( val > 20150101)  
   END REPEAT;  
END   
/  


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值