博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle sqlldr命令
阅读量:5844 次
发布时间:2019-06-18

本文共 3006 字,大约阅读时间需要 10 分钟。

今天别人的入库代码,看的真有点晕,最后看完才知道是用了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: 命令行参数可以由位置或关键字指定
。前者的例子是 'sqlldr
scott/tiger foo
'; 后一种情况的一个示例是 '
sqlldr control=foo
userid=scott/tiger'。位置指定参数的时间必须早于
但不可迟于由关键字指定的参数。例如,
允许
'sqlldr scott/tiger control=foo logfile=log'
, 但是
不允许
'sqlldr scott/tiger control=foo log'
, 即使
参数
'log'
的位置正确。
 
 
 

 

转载地址:http://xyqcx.baihongyu.com/

你可能感兴趣的文章
css3学习 理论之弹性盒模型
查看>>
h5做的时钟
查看>>
Oracle SQL: TO_CHAR and TO_NUMBER 笔记
查看>>
axios 中断请求
查看>>
Spring的注解配置与XML配置之间的比较
查看>>
2014手机分析图
查看>>
Linux PID 1 和 Systemd
查看>>
一元多项式相加
查看>>
commandLink/commandButton/ajax backing bean action/listener method not invoked (转)
查看>>
js计算时间差,包括计算,天,时,分,秒
查看>>
使用rsync在windows(服务端)与linux(客户端)之间同步
查看>>
软件工作的大环境
查看>>
vs2013中,自定义mvc 添加视图脚手架
查看>>
移动端Web开发调试之Chrome远程调试(Remote Debugging)
查看>>
Eclipse插件开发中的选择监听机制(Selection Provider-Listener)
查看>>
Java类加载过程及static详解
查看>>
background-color和background-image相关细节
查看>>
如何学好C#
查看>>
梅沙教育APP简单分析-版本:iOS v1.2.21-Nathaneko-佳钦
查看>>
Word中如何设置图片与段落的间距为半行
查看>>