DB2 存储过程,循环插入数据(用户自测造大量数据)
2018-03-01 19:31
465 查看
表结构如下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
/
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
/
相关文章推荐
- Oracle 利用储存过程插入循环插入大量数据方法
- sql中循环插入大量测试数据
- DB2使用存储过程插入数据
- SqlServer 循环插入 大量 测试数据
- DB2大量数据插入
- mysql 使用存储过程分割字符串利用循环插入数据
- 存储过程学习(002)--循环插入数据
- mysql存储过程 循环插入数据
- MySql循环插入数据(定义了存储过程)
- mysql使用存储过程循环插入数据
- MySQL使用存储过程循环插入数据
- PostgreSQL笔记 存储过程 循环插入数据
- 存储过程_循环插入数据
- MYSQL中创建存储过程实现向表中循环插入数据
- MySQL,Oracle,DB2使用存储过程插入大数据
- DB2使用存储过程插入数据
- oracel存储过程 根据excel 进行用户数据插入、角色绑定 或 用户数据更新、角色绑定或更新,并写入日志
- 关于数据库循环插入大量对象数据的解决办法
- Oracle 循环插入测试数据(网上收集整理),存储过程
- SQL循环插入大量数据