我们有多种方法可以向Oracle数据库里导入文本文件,但如果导入的文本文件过大,例如5G,10G的文本文件,有些方法就不尽如意了,例如PLSQL Developer中的导入文本功能,如果文本文件过大,不仅导入速度太慢,中间还容易出错。这时Sqlldr就能大显身手了,Sqlldr可以每秒向Oracle插入5W条数据,可以自定义控制文件,进行导入控制,而且导入过程不易出错,下面简易记录导入过程。


1.Sqlldr导入控制文件说明

 load data
infile '/home/oracle/42.txt' //文本文件的绝对位置
append into table doupoidx            //要导入的表名称
fields terminated by ','             //分隔符定义,这里是逗号
OPTIONALLY ENCLOSED BY '"'          //过滤"号
TRAILING NULLCOLS              //对应字段的顺序。
(
time TimeStamp 'yyyy-mm-dd hh24:mi:ss',
price,
volume,
interest
)

2.在Oracle用户下执行导入命令

sqlldr  userid=scott/oracle@orcl control =/home/oracle/input.ctl
//用户名/密码@实例名 control=控制文件的位置

关于 optionally enclosed by 的小测试

左边没引号右边有引号:成功,原样导入
111"
222""
333"""

左边有引号右边没引号:失败, second enclosure string not present
"44
""555
"""666

左右有相等的奇数个引号,成功,引号数=2n+1时导入数据带有n个引号
"777"
"""888"""

左右有相等的偶数个引号,失败, no terminator found after TERMINATED and ENCLOSED field
""999""
""""AAA""""

一边奇数一边偶数:失败, 错误信息为上述两种
"BBB""
""CCC"
"""DDD""
""EEE"""

两边不等的偶数:失败, no terminator found after TERMINATED and ENCLOSED field
""FFF""""
""""GGG""

两边不等的奇数:成功,引号数=2n+1时导入数据带有n个引号
"HHH"""
"""III"

总结:要么左边不能带引号;如果有引号左右都必须为奇数个

 

使用sqlldr向Oracle导入大的文本(txt)文件的更多相关文章

  1. oracle导入大sql文件

    最近遇到一个需要导入大SQL文件的问题,最先直接用SQL developer 导入大SQL文件,结果报IO Exception,只好采用sqlplus 导入,操作过程如下: sqlplus 用户名/密 ...

  2. Oracle 导入、导出DMP(备份)文件

    首先说明dmp文件: Oracle备份文件是以dmp结尾,这种文件是oracle的逻辑备份文件,常用于数据库逻辑备份,数据库迁移等操作. 一.Oracle导入备份文件步骤:我用的是Oracle 11g ...

  3. MYSQL数据库导入大数据量sql文件失败的解决方案

    1.在讨论这个问题之前首先介绍一下什么是"大数据量sql文件". 导出sql文件.选择数据库-----右击选择"转储SQL文件"-----选择"结构和 ...

  4. 【应用】:shell crontab定时生成oracle表的数据到txt文件,并上传到ftp

    一.本人环境描述      1.oracle服务端装在win7 32位上,oracle版本为10.2.0.1.0      2.Linux为centos6.5 32位,安装在Oracle VM Vir ...

  5. Oracle导入大数据量(百万以上)dmp文件,报错ora-12592 :包错误

    进行自动化测试过程中,发现需要重新搭建一套自动化测试库,然后利用pl/sql对数据库导出: 进行导入后发现报错ora-12592 :包错误 原因分析,数据量过大,传输超时,需要在Oracle服务端以及 ...

  6. oracle导入Excel表文本数据

    首先导Excel表数据要先建和Excel表字段对应的表,然后将Excel表另存为Txt文本, 然后在Plsql客户端点击工具->文本导入器 然后这里要选择用户及其表,点击导入数据就可以

  7. Oracle导入导出.sql、.dmp文件

    Oracle导出导入表(.sql..dmp文件)两种方法 提示:在导入sql和dmp文件之前,先建立用户,指明表空间.其中要注意用户名和表空间最好跟sql文件中的一样. 建表空间授权参考 :http: ...

  8. Oracle导入、导出数据库dmp文件

    版本 1.实例数据完全导出 即导出指定实例下的所有数据 exp username/password@192.168.234.73/orcl file=d:/daochu/test.dmp full=y ...

  9. Oracle导入建表的sql文件类型

随机推荐

  1. android:GLSurfaceView绘制bitmap图片及glViewport调整的效果

    首先看一下GLSurfaceView是怎样绘制的.正如android开发文档中描写叙述的那样,我们须要new一个GLSurfaceView对象,然后设置一个实现了Renderer接口的对象,我们须要写 ...

  2. 【JAVA】【NIO】5、Java NIO Scatter / Gather

    标题手段Java NIO该分散体浓缩 Java NIO内置支持分散与收集.的概念主要用于信道分散聚集的读写. 读出的分散体的一个通道被读多个数据buffer在.因此.数据分散到多个buffer中. 对 ...

  3. 阿里巴巴2014研发project师实习生面试经历

    java研发project师的初面是在上周三进行的,终于结果到了晚上才出,而没有通过的则是一结束网上就更新了状态.之后阿里通知这周三,也就是今天进行二面. 凑巧的是今早被舍友吵醒,中午那个困啊,但没时 ...

  4. android内置存储器memory和第三方外部存储disk管理

    缓存管理这里 http://blog.csdn.net/intbird/article/details/38338713 图片处理在这里 http://blog.csdn.net/intbird/ar ...

  5. 使用XML向SQL Server 2005批量写入数据——一次有关XML时间格式的折腾经历

    原文:使用XML向SQL Server 2005批量写入数据——一次有关XML时间格式的折腾经历 常常遇到需要向SQL Server插入批量数据,然后在存储过程中对这些数据进行进一步处理的情况.存储过 ...

  6. C++ Primer 学习笔记_43_STL实践与分析(17)--再谈迭代器【中】

    STL实践与分析 --再谈迭代器[中] 二.iostream迭代[续] 3.ostream_iterator对象和ostream_iterator对象的使用 能够使用ostream_iterator对 ...

  7. java.lang.ClassCastException: java.lang.NoClassDefFoundError cannot be cast to java.lang.RuntimeException

    不是一个Exception,而是一个Error,要强制转成Exception类型,就出错了java.lang.NoClassDefFoundError java.lang.RuntimeExcepti ...

  8. Log4j 2.0在具体解释发展先进的使用—SocketAppender远程输出(五岁以下儿童)

    Log4j2的Appenders充分考虑输出日志事件.包装和过滤可以被转发,它包含的主要输出到本地文件.输出到远程主机, 文件包.注射.而且,根据该日志文件的时间点.自己主动文件大小的储存条件. 例如 ...

  9. MLAPP——概率机器学习知识汇总

    <机器学习>课程使用Kevin P. Murphy图书<Machine Learning A Probabilistic Perspective>本英语教材,本书从一个独特的数 ...

  10. Android(Lollipop/5.0) Material Design(六) 自定义动画

    官网地址:https://developer.android.com/intl/zh-tw/training/material/animations.html 动画在Material设计中,为用户与a ...