Oracle sqlldr命令
今天别人的入库代码,看的真有点晕,最后看完才知道是用了sqlldr命令。哎。。。还是学艺不精啊,今后还是要多努力。
总结哈sqlldr命令:虽然大多是网上来的,自己要有体会嘛 !开源就是好啊。
sqlldr是cmd下的命令,用来将文本格式数据导入到数据库中。
命令格式:
sqlldr username/password@sid control=*.ctl
*.ctl格式为:
load data
infile
"d://test.txt"
外部数据文件
infile "d://test1.txt"
可指定多个数据文件
append into table test
向表中追加数据
fields terminated by
","
外部文件的数据以“,”分隔
OPTIONALLY ENCLOSED BY
'"' 部分字段可以用双引号包起来
trailing
nullcols
表中的字段没有对应的值时填充空值
(
id integer
external,
integer external 表示插入的数据是string,如果只保留integer,表示插入的数据是二进制
name
"upper(:name)",
将插入的值转换为大写
con
":id||:name",
表中CON列的值是ID和NAME的组合值
dt
date"yyyy-mm-dd"
插入日期型数据
)
说明:
load data
告诉SQLLDR要做什么(在这个例子中,则指示要加载数据)。SQLLDR还可以执行CONTINUE_LOAD,也就是继续加载。只有在继续一个多表直接路径加载时才能使用后面这个选项
INFILE *
:如果是*号,这会告诉SQLLDR所要加载的数据实际上包含在控制文件本身上,例见下一文。如上例指定包含数据的另一个文件的文件名。如果愿意,可以使用一个命令行参数覆盖这个INFILE语句。要当心,命令行选项总会涵盖控制文件设置
在append的位置还可以用以下列表中的一个值:
insert
向表中插入值,但要求表开始时为空,默认的加载选项
replace
delete表中的数据,然后插入新值,记录多时速度慢
append
向表中追加数据
truncate
trunctate表,然后插入新值,不能回退
FIELDS TERMINATED BY
‘,’:告诉SQLLDR数据的形式应该是用逗号分隔的值。为SQLLDR描述输入数据的方式有数十种;这只是其中较为常用的方法之一。
TERMINATED BY
WHITESPACE会解析这个串,查找空白符(制表符、空格和换行符)的第一次出现,然后继续查找,直至找到下一个非空白符。
(id integer external,
.....
dt
date"yyyy-mm-dd"):告诉SQLLDR所要加载的列、这些列在输入数据中的顺序以及数据类型。这是指输入流中数据的数据类型,而不是数据库中的数据类型。列的数据类型默认为CHAR(255)
加载这样的定界数据时,很可能想逃过输入记录中的某些列。例如,你可能加载字段1、3和5,而跳过第2列和第4列。为此,SQLLDR提供了FILLER关键字。这允许你映射一个输入记录中的一列,但不把它放在数据库中。
例:
C:\>sqlldr scott/tiger control=d:/dept.ctl
log=d:/sqlldr.log
dept.ctl的内容如下:
load date
infile
"d://test.txt"
append into table tt
fields terminated by ","
trailing
nullcols
(
id integer external,
name
"upper(:name)",
con
":id||:name",
dt
date"yyyy-mm-dd"
)
test.txt的数据如下
1,a,,2007-07-8
2,b,,2008-07-8
3,c,,2009-07-8
附录:有效的关键字:方便今后使用和查询。
userid -- ORACLE 用户名/口令 control -- 控制文件名 log -- 日志文件名 bad -- 错误文件名 data -- 数据文件名 discard -- 废弃文件名discardmax -- 允许废弃的文件的数目 (全部默认) skip -- 要跳过的逻辑记录的数目 (默认 0) load -- 要加载的逻辑记录的数目 (全部默认) errors -- 允许的错误的数目 (默认 50) rows -- 常规路径绑定数组中或直接路径保存数据间的行数 (默认: 常规路径 64, 所有直接路径) bindsize -- 常规路径绑定数组的大小 (以字节计) (默认 256000) silent -- 运行过程中隐藏消息 (标题,反馈,错误,废弃,分区) direct -- 使用直接路径 (默认 FALSE) parfile -- 参数文件: 包含参数说明的文件的名称 parallel -- 执行并行加载 (默认 FALSE) file -- 要从以下对象中分配区的文件 skip_unusable_indexes -- 不允许/允许使用无用的索引或索引分区 (默认 FALSE)skip_index_maintenance -- 没有维护索引, 将受到影响的索引标记为无用 (默认 FALSE)commit_discontinued -- 提交加载中断时已加载的行 (默认 FALSE) readsize -- 读取缓冲区的大小 (默认 1048576)external_table -- 使用外部表进行加载; NOT_USED, GENERATE_ONLY, EXECUTE (默认 NOT_USED)columnarrayrows -- 直接路径列数组的行数 (默认 5000)streamsize -- 直接路径流缓冲区的大小 (以字节计) (默认 256000)multithreading -- 在直接路径中使用多线程 resumable -- 启用或禁用当前的可恢复会话 (默认 FALSE)resumable_name -- 有助于标识可恢复语句的文本字符串resumable_timeout -- RESUMABLE 的等待时间 (以秒计) (默认 7200)date_cache -- 日期转换高速缓存的大小 (以条目计) (默认 1000)no_index_errors -- 出现任何索引错误时中止加载 (默认 FALSE)PLEASE NOTE: 命令行参数可以由位置或关键字指定。前者的例子是 'sqlldrscott/tiger foo'; 后一种情况的一个示例是 'sqlldr control=foouserid=scott/tiger'。位置指定参数的时间必须早于但不可迟于由关键字指定的参数。例如,允许 'sqlldr scott/tiger control=foo logfile=log', 但是不允许 'sqlldr scott/tiger control=foo log', 即使参数 'log' 的位置正确。Oracle sqlldr命令的更多相关文章
- 使用sqlldr命令导入资料到Oracle数据库表中的示例说明
CSV: Comma-Separated Values(逗号分隔值)的缩写,是以逗号分隔字段的多行文本文件 sqlldr 是sql*loader的缩写,此工具在安装完整版的Oracle客户端后就有 ...
- oracle数据库sqlldr命令的使用
将数据导入 oracle 的方法应该很多 , 对于不同需求有不同的导入方式 , 最近使用oracle的sqlldr命令 导入数据库数据感觉是个挺不错的技术点 . 使用sqlldr命令 将文本文件导入 ...
- Oracle数据库导入csv文件(sqlldr命令行)
1.说明 Oracle数据库导入csv文件, 当csv文件较小时, 可以使用数据库管理工具, 比如DBevaer导入到数据库, 当csv文件很大时, 可以使用Oracle提供的sqlldr命令行工具, ...
- Oracle sqlldr导入导出txt数据文件详解
一.sqlldr导入txt 1.预备 a).txt文件 这里要保存成无签名的UTF-8 b).oracle建表 2.编写控制文件input_test.ctl LOAD DATA CHARACTERSE ...
- Oracle sqlldr导入之“MAXIMUM ERROR COUNT EXCEEDED”
昨天看到一个同事在通过PL/SQL Developer工具把文本数据往oracle表;有两个文本:一个有30万条记录:一个7万多条记录.在导入到过程中:出现错误记录还需要点击确认.不过使用黑科技(屏幕 ...
- Oracle sqlldr数据加载
1 sqlldr 传统路径:sqlldr会利用sql插入为我们加载数据 直接路径加载:sqlldr不适用sql,直接格式化数据块,绕开undo,避开redo,最快的方法就是并行直接路径加载 sqlld ...
- Linux:sqlldr命令
第一步:写一个 ctl格式的控制文件 CTL 控制文件的内容 : load data --1. 控制文件标识 infile 'xxx.txt' --2. 要导入的数据文件名 insert into t ...
- Oracle常用命令1
一. 安装是用户管理: sqlplus /nolog; connect /as sysdba; alter user sys identified by change_on_install; alte ...
- ORACLE EXPDP命令使用详细【转】
本文转自:http://blog.csdn.net/zftang/article/details/6387325 ORACLE EXPDP命令使用详细 相关参数以及导出示例: 1. DIRECTORY ...
随机推荐
- ie6 javascript:void(0);
遇到过几次这种问题,现在总结一下. 代码: <a onclick="window.location.href='http://www.google.com'" href=&q ...
- php简单混淆类加密文件如何解密?
最近在整理单位购买的源码时,发现源码里好多文件都混淆加密了.虽然不解密也不影响使用,但是心里总觉得有些别扭,便试着将加密的文件解密. 首先,百度了一下,看网上是否有现成的混淆类解密工具,搜到了一个ht ...
- poj 1236 Network of Schools 【Tarjan】
题目链接:http://poj.org/problem?id=1236 题意: 本题为有向图. 需解决两个问题: 1 须要给多少个点,才干传遍全部点. 2 加多少条边,使得整个图变得强连通. 使用Ta ...
- MYSQL服务器复制配置
首先声明:此文是在失去U盘极度郁闷的时候写的,有些零散,估计也有错误.欢迎大家指出 MYSQL服务器复制配置 这是根据我之前看的MYSQL复制的文档然后自己亲自实验的过程.配置的功能比较简单. ...
- RabbitMQ php 使用
RabbitMQ是一个开源的基于AMQP(Advanced Message Queuing Protocol)标准,并且可靠性高的企业级消息系统,目前很多网站在用,包括reddit,Poppen.de ...
- unity, 由Matrix4x4提取Quaternion和Vector3 及 由Quaternion,Vector3构造Matrix4x4
一,由Matrix4x4提取Quaternion和Vector3 Quaternion getRotationFromMatrix(Matrix4x4 m) { return Quat ...
- Hadoop知识汇总
Hadoop的两大功能:海量数据存储和海量数据分析 Hadoop2的三大核心组件是:HDFS.MapperReducer和yarn 1.HDFS:分布式文件系统海量数据存储 2.MapperReduc ...
- RSA加密的测试demo
使用.net自带的RSA,需要引用System.Security.Cryptography 测试环境.net4.6 static void Main(string[] args) { var RSA ...
- cocos2d-x 2.0通过CCAnimation实例获取CCSpriteFrame
通过CCAnimation实例获取CCSpriteFrame,会出现类型转换问题.我们在创建一个animation的时候,经常遵循下面的步骤:1)create 一个CCArray对象A.2)通过A-& ...
- 纯css3实现的竖形二级导航
之前为大家分享了好多导航菜单.今天给大家带来一款纯css3实现的竖形二级导航.这款导航菜单可以是无限级.一起看下效果图: 在线预览 源码下载 实现的代码. html代码: <div styl ...