使用sqlldr和sqluldr2批量处理execle表格中的数据--导入导出

一,sqlldr处理往oracle中导入数据

1.使用sqlldr进行批量的导入操作举例如下:
sqlldr userid=user/password control=sm2pwd.ctl

导入命令参数说明:

sqlldr user/password control=test.ctl skip=1 load=200000 errors=100 rows=1000 bindsize=33554432
user/password //数据库的用户名密码
control //sqlldr控制文件位置
skip=1 //表示跳过第一行,从第二行开始导入
load=200000 //表示并不导入所有的数据,只导入跳过skip参数后的200000条数据
rows=1000 //表示一次加载的行数,默认值为64,此处设置为1000
errors=100 //表示出错100次后,停止加载
bindsize=33554432 //表示每次提交记录缓冲区的大小,默认256k

sm2pwd.ctl的内容举例如下:
load data
characterset utf8
infile ‘deal_test.txt’
insert into table mapping_data
fields terminated by ‘|’
optionally enclosed by ‘"’
(
summary,
sm2pwd
)

sqlldr控制文件及参数说明:

control文件:test.ctl
格式如下:
load data
CHARACTERSET ‘UTF8’ //指定字符集为UTF-8,解决数据库乱码问题
infile ‘D:\dat\test.dat’ //指定数据文件位置
truncate into table table_name //指定装载方式和导入数据的表
fields terminated by ‘,’ optionally enclosed by ‘"’ //字段之间的分隔值为逗号,界定符号为""
TRAILING NULLCOLS //没有值的字段设置为空,解决空值问题
(
column1,
column2,
column3,

)

二,sqluldr2处理从oracle中导出数据

oracle导出数据为文本格式比较麻烦,sqluldr2是灵活的强大的oracle文本导出程序,是之前阿里大拿首席dba楼方鑫开发的小工具,oracle有自己的一个sqlldr工具,是将文本载入到oracle库中用的,而现在这个sqluldr中间加了个u是un的意思,小工具是用oracle的C语言接口写成,短小精干运行速度快,工具很强大,而且批量导出效率非常高,使用灵活,多个平台版本都有对应的工具。
实操:
1.指定实例
export ORACLE_SID=orcl
2.执行语句
./sqluldr2_linux64_10204.bin user=user/password query=mapping_data head=yes file=mapping_data_%B.txt
注意:执行语句没有指定分割符的时候,默认是“,”。可以使用 field 属性来修改分隔符,例如:field=#;head属性是用于导出的数据添加表头,否则导出来的只有表数据,没有对应表字段,查看起来并不方便。
3. 批量导出数据,按照5000条切分一个文件组装
./sqluldr2_linux64_10204.bin user=user/password query="select * from MGT_LOG " table=MGT_LOG head=yes mode=APPEND field=# file=MGT_LOG_test_%B.csv batch=yes rows=5000
注意如果sql查询出来的结果条数太少,可能不会进行切分。例如:把rows这个属性改为100,并不会按照预想中的100条切分出来一个文件。
参考案例:
https://blog.csdn.net/JiekeXu/article/details/132573434
https://www.cnblogs.com/ocp-100/p/11098373.html

  • 43
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值