oracle 批量插入1亿行数据

 

 

今天为了整一个测试数据,

实验环境是linux 64位服务器,安装oracle 10.2.0.4数据库

 

要求表有20个属性列,数据内容不限,要求数据1亿行.然后按表导出DMP

 

1.首先创建了表test

create table test (

name          varchar2(100),sex           varchar2(100),

 

name_1        varchar2(100),sex_1         varchar2(100),

 

 

address       varchar2(100),address_1     varchar2(100),

 

 

ident_NO      varchar2(100),ident_NO_1    varchar2(100),

 

 

self_info     varchar2(100),self_info_1   varchar2(100),

 

 

brithday      varchar2(100),brithday_1    varchar2(100),

 

 

school        varchar2(100),school_1      varchar2(100),

 

 

language      varchar2(100),language_1    varchar2(100),

 

 

age           varchar2(100),age_1         varchar2(100),

 

 

xueli         varchar2(100),xueli_1       varchar2(100))

 

2.然后在PL/SQL中用SQL批量插入数据

 

begin 

for i in 1..100000000 loop  

insert into test(name,sex,name_1,sex_1,address,address_1,ident_NO,ident_NO_1,self_info,self_info_1,

brithday,brithday_1,school,school_1,language,language_1,age,age_1,xueli,xueli_1) 

values('625周伦杰','jay','woman','山东省济南市','山东省济南市-1','5687670771','47041660245','吃','hihi','1990-01-20','19890202','北京小学','sdau.com','english','chinese','12','122','本科','000','周');  

end loop;  

end;

commit;

 

插入过程中平均1千万行数据是500秒,1亿行用了1个小时

 

起初是写了一个java程序简单的for循环向数据库中插数据

在插入数据过程中,在机器sqlplus查询数据中文是乱码,

数据库字符集是GBK,REDHAT环境是英文的,改成中文登陆后,

重新插入数据,查询仍是乱码.


向开发部求助后,开发部建议用自己机器安装oracle客户端连接数据库,

插入和查询数据.用本机PL/SQL连接数据库后,查询数据发现不是乱码.

插入数据没有问题,只是REDHAT系统的问题.

 

3.按表导出数据

exp dw/oracle file=/home/oracle/dmp/tb_test_data.dmp owner=dw tables=(test)

 

弹出错误       EXP-00026 指定了冲突模式
语句改成

exp dw/oracle file=/home/oracle/dmp/tb_test_data.dmp tables=(dw.test)

执行导出操作

Export: Release 10.2.0.1.0 - Production on 星期三 9月 5 13:18:03 2012
Copyright (c) 1982, 2005, Oracle.  All rights reserved.

连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit ProdutionWith the Partitioning, OLAP and Data Mining options

已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
即将导出指定的表通过常规路径.... . 正在导出表   DW_DATA

导出了100047835 行成功终止导出, 没有出现警告。

导出dmp文件大小16G,耗时3个小时.

 

 

 

 

 

 


 

 

 

你可能感兴趣的:(oracle,批量插入)