注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

SunOfMay的博客

At.163

 
 
 

日志

 
 

Oracle Sqlldr 导入数据  

2015-08-28 11:18:48|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

清空已经建好的脚本文件
cat /dev/null >tsp.ctl

vi建立ctl脚本文件,内容如下:
load data
infile '/home/oracle/to2.csv'
insert into table t_o
fields terminated by ','
(id,event_id,event_time DATE "YYYY-MM-DD HH24:MI:SS",top_value,standing_time,terminal_id,clct_date,tick DATE "YYYY-MM-DD HH24:MI:SS",clct_time,lng,lat,gps_tag,status,location,gps_tick,speed,speed_tick,rev,rev_tick,sms_state,descb,driver_id)
说明: 导入日期类型必须制定格式, 否则无法导入数据

执行数据导入
sqlldr userid=sqos/sqos@innetdb control=/oracle/app/product/11.2.0/bin/tsp.ctl direct=true

产生的日志文件和ctl文件目录相同
cat /oracle/app/product/11.2.0/bin/tsp.log 
数据导入失败会生产.bad文件, 也和.ctl文件在相同目录下.



ctl文件内容说明参考如下:

LOAD DATA
INFILE 't.dat'              要导入的文件
// INFILE 'tt.date' 导入多个文件
// INFILE *               表示要导入的内容就在control文件里 下面的BEGINDATA后面就是导入的内容
INTO TABLE table_name    指定装入的表
BADFILE 'c:\bad.txt'    可选,指定坏文件地址,缺省在当前目录下生成与原文件名一致的.bad文件
************* 以下是4种装入表的方式
APPEND             原先的表有数据 就加在后面
INSERT             装载空表 如果原先的表有数据 sqlloader会停止 默认值
REPLACE           原先的表有数据 原先的数据会全部删除
TRUNCATE        指定的内容和replace的相同 会用truncate语句删除现存数据
************* 指定分隔符
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
// TERMINATED BY WRITESPACE 以空白分割
TRAILING NULLCOLS            表的字段没有对应的值时允许为空
************* 下面是表的字段
(
col_1 , col_2 ,col_filler FILLER // FILLER 关键字 此列的数值不会被装载
// 如: lg,lg,not 结果 lg lg
)
如果没声明FIELDS TERMINATED BY ',' 时,可以用下面两种方式实现同样功能:
1.为每一列指定分隔符
(
col_1 [interger external] TERMINATED BY ',' ,
col_2 [date "dd-mon-yyy"] TERMINATED BY ',' ,
col_3 [char] TERMINATED BY ',' OPTIONALLY ENCLOSED BY 'lg'
)
2.用位置告诉字段装载数据
(
col_1 position(1:2),
col_2 position(3:10),
col_3 position(*:16), // 这个字段的开始位置在前一字段的结束位置
col_4 position(1:16),
col_5 position(3:10) char(8) // 指定字段的类型
)
BEGINDATA         对应开始的 INFILE * 要导入的内容就在control文件里
10,Sql,what
20,lg,show

window下, 
sqlldr userid=user/password@innetdb_9.199 control=e:\load.ctl

load data
CHARACTERSET 'UTF8'  //指定字符集
infile 'e:\test.csv' 
append into table test1 fields terminated by ','
trailing nullcols (name)
  评论这张
 
阅读(63)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018