sqlldr命令导入csv文件到oracle

sqlldr命令导入csv文件到oracle

基本准备

  1. 在oracle中完成你的表创建
  2. 准备好一个.csv的文件,列名和数据库保持一致
  3. 编辑控制文件.ctl

编辑控制文件

首先先来看一个我写好的文件

options(skip=1, COLUMNARRAYROWS=20971520, ROWS=10000, READSIZE=20971520, ERRORS=999999999)
load data
CHARACTERSET ZHS16GBK
infile '/xxx/xxx.csv'
append into table "xxx"
fields terminated by ','
Optionally enclosed by '\''
trailing nullcols 
(id,name,age,score)

参数解析

  • options 导入参数 (skip 跳过行,ROWS=10000 每次提交的行数, error 允许的错误行)
  • CHARACTERSET xxx 指定字符编码,此处需要和你的数据库保持一致,不然可能会出现乱码
  • infile ‘文件路径’ 指明你要导入的文件路径(全路径)(该命令可有多个,支持多个文件导入)
  • append into table “表名” 写入的oracle表
    insert : 默认方式,在导入记录前要求表为空;
    append : 在表中追加新导入的记录;
    replace : 删除旧记录(等价delete from table语句),替换成新导入的记录;
    truncate: 删除旧记录(等价truncate table语句),替换成新导入的记录;
  • fields terminated by ‘,’ 指定每一列是以逗号分隔(csv)
  • Optionally enclosed by ‘’’ 指定字段是用两个分号(’)包围起来的(可选)
  • trailing nullcols 表的字段没有对应的值时允许为空
  • 最后一行对应导入的字段,此处可以指定可以针对特定字段进行长度和类型设置(这里默认的长度最大是255)
    eg: CREATE_TIME "to_date(:CREATE_TIME, ‘yyyy-mm-dd hh24:mi:ss’)"
    name char(4000)

命令执行

sqlldr userid='用户名/密码@ip:1521/orcl' control='/xxx/xxx.ctl' 

重要提示:

  • 执行上述命令之前首先需要切换你的服务器用户
su - oracle   
  • 脚本执行结束默认会生成一个.log和一个.bad,分别记录执行日志和执行失败的数据
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值