oracle大批量数据加载之sqlldr使用方法

来源:互联网 发布:搞笑网络神曲排行榜 编辑:程序博客网 时间:2024/06/10 22:54

load数据有以下几种方式:

1.insert语句执行,但是效率太低,对于百万千万条数据的加载,insert完全行不通;

2.使用工具plsql 中import,大约50万条每小时,但是效率太低;

3.使用sqlldr,大约350万每小时,比较客观,支持一般常见load数据;

sqlldr使用方法:

1.你要新建.ctl控制文件来执行相对应的txt文本;

2..ctl文件编写格式如下:

LOAD DATA

CHARACTERSET ZHS16GBK
INFILE '/home/oracle/JKSJ/20160830/tabl_name.txt'
TRUNCATE TABLE tabl_name
APPEND INTO TABLE tabl_name
FIELDS TERMINATED BY ","
TRAILING NULLCOLS
(


    SUBCODE                          CHAR NULLIF (SUBCODE=BLANKS)
 , SUBCTRLCODE                      CHAR NULLIF (SUBCTRLCODE=BLANKS)
  , SUBNAME                          CHAR NULLIF (SUBNAME=BLANKS)
  , SUBLEVEL                         INTEGER EXTERNAL NULLIF (SUBLEVEL=BLANKS)
  , UPCTRLCODE                       CHAR NULLIF (UPCTRLCODE=BLANKS)
  , SUBKIND                          CHAR NULLIF (SUBKIND=BLANKS)
)
sqlldr userid=dbuser/pasword@10.9.249.5:1521/db control=C:\tabl_name.ctl log=c:\tabl_name.log
解释:sqlldr 用户名/密码@真实的ip:端口号/实例名 control=控制文件地址 log=日志(失败时才有日志)

注意的是:出现比较多的问题是字段长度不够长,出现错误可以再log中查找错误信息;

0 0