使用Oracle sqlldr 快速批量导入文本文件

原创 2015年07月09日 22:38:25

最近项目需要导入一批3000多万条的POI数据到Oracle数据库,简单的插入导入速度太慢,使用sqlldr 批量导入3000多万条数据花了20分钟左右,速度还可以,具体方法如下:

1.新建导入控制文件 input.ctl,文件内容如下:

Load data
Characterset UTF8
Infile 'H:\POI\baidu.txt'
Append into table tbl_poi_baidu
fields terminated by ","
Optionally enclosed by '""'
Trailing nullcols
(POI_NAME,CLASS_ALL,ADDR,PHONE,TEL,LONGITUDE,LATITUDE,CITY,CITYCODE,PROVINCE,DISTRICT,STREET,STREENUMBER,CLASS_1,CLASS_2,CLASS_3,CLASS_4)

2.命令行窗口输入:

sqlldr userid=sde/sde control=input.ctl log=log.out discard=discard.txt errors=1000000 

注意:文件字符集要与Oracle服务等字符集一致,建议文件另存为UTF-8无BOM,导入文件内添加 Characterset UTF8

解决Oracle数据导入中文乱码:export NLS_LANG='SIMPLIFIED CHINESE_CHINA.AL32UTF8' 

DOS环境下文件快速合并: copy *.csv newfile.txt

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

oracle导入导出数据不完整问题

oracle数据的导入导出     以前导入导出出现数据不全的原因是因为当我们导入用户对象之后,把外键约束导入了,如果导入的数据没有按照主表----副表,那么如果先导入副表,副表就导入不...

在oracle中怎样一次导入多个SQL文件中的内容

在开发中,为了便于管理,可能会将每个存储过程和函数的sql单独放在一个.sql文件中,这样就会造成N多个.sql文件,如果需要将这些文件都执行的话就很麻烦,所以想了个办法一次执行所有的sql文件。1....

ORACLE 快速批量导入文本数据到数据库(sqlldr工具)方法与分析

在实际生产环境中,常会碰到将一些如通过通讯接口传过来的数据(文本文件 txt)导入到数据库的某张表中。通常做法是使用ORACLE自带的包功能打开文件,再使用LOOP循环一行行读取文本数据,再将数据写入...
  • iloli
  • iloli
  • 2017年03月29日 19:22
  • 1804

sqlldr批量导入文件夹下多个csv文件

创建表的时候要创建在一般用户下,不要创建在sys和sysytem用户下,否则sqlldr导入时提示权限不够批量导入,可以通过获取文件夹下所有文件的绝对路径实现@echo off & setlocal ...

oracle大批量数据加载之sqlldr使用方法

load数据有以下几种方式: 1.insert语句执行,但是效率太低,对于百万千万条数据的加载,insert完全行不通; 2.使用工具plsql 中import,大约50万条每小时,但是效率太低; 3...
  • bzhzhc
  • bzhzhc
  • 2016年09月02日 09:04
  • 2738

Sqlldr性能优化总结

Usage: SQLLDR keyword=value [,keyword=value,...] 部分关键字:     userid -- ORACLE username/password...

使用sqlldr导入文本数据到oracle

1.sqlldr介绍 用法: SQLLDR keyword=value [,keyword=value,...]   有效的关键字:       userid -- ORACLE 用...

自动生成控制文件及数据文件并完成sqlldr的自动导入

在config.cfg里面配好相应的用户和表名就可得到相应的select语句和该表的控制文件,运行generate.sh可以得到该表的数据文件,运行sqlldr可以把生成的数据文件插入到目标库表中。目...

用Oracle sqlldr导入文本文件TXT 总结

    最近在处理一批文本数据,规定按照接口说明导入到ORACLE数据库中,经过最近的研究,解决了一些问题,觉得我必要总结一下: 常规资料: -----------------------------...

ORACLE数据库NLS_CHARACTERSET和NLS_NCHAR_CHARACTERSET区别

使用Select * from nls_database_parameter去查看的字符集,发现查到两个字符集,NLS_CHARACTERSET 和NLS_NCHAR_CHARACTERSET。如下:...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用Oracle sqlldr 快速批量导入文本文件
举报原因:
原因补充:

(最多只允许输入30个字)