Linux 将数据文件的记录分割符\n替换成\r\n,然后入Oracle

Linux 将数据文件的记录分割符\n替换成\r\n,然后入Oracle

编写控制文件ctl,部分内容(截取了部分字段)如下图:
在这里插入图片描述
查看文件编码为utf-8,现将文件编码转为gbk,如下图:
在这里插入图片描述
替换文件分隔符,使用以下命令:
sed -i “s/$/^M/g” cnca.bin
查看文件前几条记录:cat -A cnca.bin | head -n 2,
发现记录分隔符为^M$(Linux中代表回车换行符),如下图所示:

在这里插入图片描述

利用Oracle的导入工具sqlldr,导入数据出现如下错误:
在这里插入图片描述
错误提示,超过读取缓冲区,将readsize设置最大之后,还是依然报这个错误,然后查看文件分隔符依然只是\n,前面以为文件替换M$之后记录分隔符已经变成\r\n,其实只是在文件末尾增加了一个回车符M。经过几番测试之后,终于找到了替换方法,使用如下命令,可以正常替换记录分隔符:
sed -i “s/$/\r/g” cnca.bin
在这里插入图片描述
利用sqlldr测试,发现能正常入库了:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值