您的位置:首页 > 数据库 > Oracle

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

2016-09-02 09:04 323 查看
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中查找错误信息;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息