sqlldr使用过程中遇到的问题

本文预计阅读时间 2 分钟

前言:

前段时间,做过这样一个任务:批量解析ftp服务器上的指定文件,然后入库,是个定时任务,每月的15日去执行。任务做完上线后,需要将前几个月的文件手动入生产库,因为数据量庞大,所以考虑使用sqlldr,因为初次使用,遇到了几个问题,还有一些自己认为需要注意的点,与大家分享一下,高手勿喷。

1、skip控制着跳过几行后开始读取文件

sqlldr使用过程中遇到的问题

2、replace是把所有数据全部清空,然后再读取要读取的文件数据,apend是在已有数据的基础上再追加新的数据记录。

sqlldr使用过程中遇到的问题

3、sqlldr不支持同时使用多个数据源导入一张数据库表的方式(一个一个的导入)

4、中文出现乱码解决:

通过select * from v$nls_parameters; 查看NLS_CHARACTERSET为AL32UTF8,

而我本机是GBK,于是本机通过DOS窗口进行如下设置:

set NLS_LANG=AMERICAN_AMERICA.AL32UTF8

同时更改控制文件如下:

load data

CHARACTERSET AL32UTF8

infile '文件路径/文件名.后缀'

5.每一行的最后一个字段中出现了一个回车符,暂时没想到如何通过sqlldr解决,只能全量修一下数据(有哪位大佬知道,麻烦在下面评论,谢谢)

update 表名 a set a.最后一个字段 = replace(a.最后一个字段,to_char(chr(13)),'');

weinxin
七墨微信
请留下您宝贵的意见,或者每天来本站的文章页面签到,七墨将不胜感激~~
  • sqlldr使用过程中遇到的问题已关闭评论
  • 479
  • A+
所属分类:Java篇
七墨
700多份网站主题源码
Adobe软件最新全家桶(win、mac)