sqlldr能导入mysql_利用sqlldr将数据文件导入到数据库

本文介绍了如何使用sqlldr工具将数据文件导入到数据库,重点在于如何编写ctl控制文件,包括数据分隔符、操作类型(如insert、append等)的设置,并提到了导入部分列的方法,同时讨论了坏数据文件、日志文件的处理,以及direct导入的注意事项。
摘要由CSDN通过智能技术生成

前段时间了解到了sqlldr这个功能,感觉很不错就尝试着搞一下。我也是通过查阅网上的资料了解并实验的,如果有什么说的不对或者有需要补充的希望大牛们多多指点。

sqlldr的作用是将数据文件导入数据库的表,只支持单个文件的导入。

不过应该可以使用循环或者数据文件合并来实现多个文件的导入。

利用sqlldr进行数据文件的导入只要两步:

1.写一个ctl格式的文件(用于说明接收表的一些信息)

参数说明:

load data -- 1. 控制文件标识

2eb1f8625c817acb6954f42cfdcc8ae5.png

参数说明:

load data -- 1. 控制文件标识

之后是对表的操作类型:

insert: 默认值,在空表中插入记录,如果表不为空则会报错。

append: 在表中追加新记录。

replace:替换,将旧的记录去掉(用delete语句),添加上新的信息。

truncate:替换,将旧的记录去掉(用truncate语句),添加新的信息。

FIELDS TERMINATED BY "":数据分隔符。

TRAILING NULLCOLS:当数据文件对应字段是空值时,表中对应字段就以null插入。

2.写入导入语句:

d4b6387dd66aa5ebf2cb90559327f47c.png

参数说明:

userid:数据库的账号密码用户串

control:控制文件,也就是第一步写的的文件

log:日志文件,记录执行信息。

bad:坏数据文件,出现错误的记录会出现在该文件中

data:数据文件名字

parallel:不会锁住加载表,可以同时让多个sqlldr语句操作一个表导入数据,这样不安全,一般用false。

direct:Direct导入可以跳过数据库的相关逻辑(DIRECT=TRUE),而直接将数据导入到数据文件中,但是这样可能会破快表的结构,一般用false。

另外还有一种情况就是导入部分列:假如数据文件有五列而表只需要一、三、四这三列的情况。

这种情况只需要对.ctl控制文件进行修改,我们可以把不需要的二、五两列在控制文件中的字段设置为其他值,先附图,取值说明随后说。

7b5392fbb60d5b5beaccf186b5cd6e40.png

其中的TCOL FILLER与TCOLS FILLER放在不需要导入数据库表的列,我发现这个值不是随便写的,本人对取值也没有深究,只是随便试了试摸索了点规律。

这个值中的FILLER是固定的不可少的,不过前边的TCOL是可以变的,不过尽量用字母,数字能不能用我没有试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值