http://blog.csdn.net/xiyang_1990/article/details/78771962
这里提供一种方法,使用 APPEND 提示,使得十分钟内插入上亿数据成为可能。
-- Create table
create table TMP_TEST_CHAS_LEE
(
f01 VARCHAR2(20),
f02 NUMBER(10) not null,sans-serif;font-size:13px;line-height:19.5px;"> f03 VARCHAR2(21),sans-serif;font-size:13px;line-height:19.5px;"> f04 VARCHAR2(21),sans-serif;font-size:13px;line-height:19.5px;"> f05 NUMBER,sans-serif;font-size:13px;line-height:19.5px;"> f06 NUMBER(20)
);
--创建一个临时表,用于提供序列号
CREATE GLOBAL TEMPORARY table t_sequence_num(
sequenceNum number(8) not null
)
ON COMMIT PRESERVE ROWS;
--开始插入数据
begin
--先生成1万个序号
delete from t_sequence_num;
for i in 0..9999 loop
insert into t_sequence_num(sequenceNum) values(i);
end loop;
--使用APPEND提示,每次1万条,进行数据插入
for i in 1..10 loop
insert /*+ append */ into TMP_TEST_CHAS_LEE
(f01,f02,f03,f04,f05,f06)
select
8613800000000 + i * 10000 + t_sequence_num.sequencenum as MSISDN,sans-serif;font-size:13px;line-height:19.5px;"> '12106000',sans-serif;font-size:13px;line-height:19.5px;"> 0,sans-serif;font-size:13px;line-height:19.5px;"> '20120312072000',sans-serif;font-size:13px;line-height:19.5px;"> '500231891000',sans-serif;font-size:13px;line-height:19.5px;"> null
from t_sequence_num;
--每批次必须要提交一次
commit;
end;
/
4. APPEND方式插入数据后,必须要提交后才能对表进行其它操作