一、oracle的for循环插入数据
我要在DRWDDET20170111这张表中循环插入30W条数据用于测试,sql如下:
DECLARE
i NUMBER := 0 ;
BEGIN
FOR i IN 1 .. 300000 loop INSERT INTO DRWDDET20170111 (
MOBTYPE_ID, BLNC_ID,GROUP_ID,
PHONE_NO, LOGIN_NO,OP_TIME,
RWD_TYPE_CODE,BASE_VALUE,
VALUE_MODE,RWD_FLAG,KPI_VALUE
)
VALUES
(
'0510', '1000012708','2',
'13808059988', 'aajt21', to_date('2016-04-08 10:23:43','yyyy-mm-dd,hh24:mi:ss'),
'0525', '1',
'1', 'Y','1'
) ;
END loop ; COMMIT ;
END ;
上面语句中的i其实并没有用上,可以用i来做ID之类的:
DECLARE
i NUMBER := 0 ;
BEGIN
FOR i IN 1 .. 300000 loop INSERT INTO DRWDDET20170111 (
ID,
MOBTYPE_ID, BLNC_ID,GROUP_ID,
PHONE_NO, LOGIN_NO,OP_TIME,
RWD_TYPE_CODE,BASE_VALUE,
VALUE_MODE,RWD_FLAG,KPI_VALUE
)
VALUES
(
i,
'0510', '1000012708','2',
'13808059988', 'aajt21', to_date('2016-04-08 10:23:43','yyyy-mm-dd,hh24:mi:ss'),
'0525', '1',
'1', 'Y','1'
) ;
END loop ; COMMIT ;
END ;
二、eclipse大量数据获取时内存配置
在执行程序时,由于数据有30W,后台报错:java.lang.OutOfMemoryError: Java heap space
原因是eclipse的内存配置不够,所以要对其进行修改。
我的电脑是8G的内存。
1.找到eclipse/eclipse.ini,打开,在其上加上
-vmargs
-Xms512m
-Xmx2048m
2.打开eclipse,选择Window--Preferences--Java--Installed JREs,在右边选择前面有对勾的JRE,单击Edit,出现一个EditJRE的对话框,在其中的Default VM Arguments框中输入-Xms512m -Xmx2048m。
这样设置java虚拟机内存使用最小是512M,最大是2048M。
这是我能跑动30W数据的最低配置,再低都会报错。