1,导出数据到txt文件
工具为pl/sql,spool
1)导出数据脚本
将以下脚本写好后保存为自己的文件名,此处为spool.txt
set feedback off //回显本次sql命令处理的记录条数,缺省为on
set heading off //输出导出数据的标题,缺省为on
set verify off //校验环境变量
set echo off //显示start启动的脚本中的每个sql命令,缺省为on
set pagesize 0 //输出每页行数,缺省为24,为了避免分页,可设定为0。
set linesize 100 //输出一行字符个数,缺省为80
set termout off //去除标准输出每行的拖尾空格,缺省为off
spool E:sql\test.txt //保存导出数据的文件名
SELECT col_a||'|'||col_b||'|'||col_c from table_a where col_a=1; //导出的数据格式,此处用管道符‘|’做分割
spool off; //导出结束
2)打开pl/sql的command窗口
如图,在命令窗口中输入第一步中的文件名,用绝对路径。要有@符号。回车执行。
执行结束后会到下一行
导出速度:我的数据大概90万,执行时间大约2分钟。
结束后可以在E:sql\test.txt看到导出的文件。
2 将导出的文件导入数据库
工具为sqlldr
1,在服务器新建文件 insert.ctl
load data infile
'test.txt' //要导入的txt文件
append into table test_table //以追加的方式将数据添加到表test_table
fields terminated by '|' //以管道符‘|’分割数据
optionally enclosed by '"'
trailing nullcols
(cola,colb,colc)
2,执行insert.ctl
在命令行 sqlldr user/[email protected] control=insert.ctl
导入速度:90万笔,大概2分40秒