今天为了整一个测试数据,
实验环境是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个小时.