Oracle中使用sqlldr加载数据

一、SQLLDR数据加载简单示例

 

1. 创建示例数据表

 

create table TS_USER

(

  id          VARCHAR2(20),

  user_name   VARCHAR2(30),

  password    VARCHAR2(50),

  sex         CHAR(1),

  create_time DATE

)

 

2. 在E盘下创建控制文件data.ctl,内容如下:

 

LOAD DATA

INFILE 'data.txt'

APPEND INTO TABLE TS_USER

FIELDS TERMINATED BY ','

(ID, USER_NAME, PASSWORD)

 

3. 在E盘下创建数据文件data.txt,内容如下:

 

1,tuozixuan,123456

2,wengpeng,password

 

4. 把数据文件data.txt中的数据加载到本地数据库中

 

sqlldr userid=scott/password@127.0.0.1/orcl control=data.ctl

 

二、sqlldr命令主要参数

 

userid:oracle用户名/密码

control:控制文件名

data:数据文件名

log:日志文件名

bad:错误文件名

skip:要跳过的逻辑记录的数目(默认为0)

load:要加载的逻辑记录的数目(默认全部)

 

sqlldr userid=scott/password@127.0.0.1/orcl control=data.ctl data=data.txt log=log.log bad=bad.log skip=1 load=1

 

三、控制文件说明

 

1. LOAD DATA

    控制文件标识

 

2. INFILE 'data.txt'

    指定要导入的数据文件为data.txt

    如果使用INFILE *,表示要导入的数据就在control文件里面,即BEGINDATA后面的内容。

 

3. APPEND INTO TABLE TS_USER

    指定数据要加载到那张表中,加载方式有下面几种:

    APPEND:原表中有数据,则追加在表中

    INSERT:把数据加载到空表中,如果原表中有数据则会停止加载,该项为默认值

    REPLACE:如果原表中有数据,则会全部删除

    TRUNCATE:如果原表中有数据,则会用truncate语句删除

 

4. FIELDS TERMINATED BY ','

    指定数据的分割符

    FIELDS TERMINATED BY WHITESPACE:以空白分割

    FIELDS TERMINATED BY X'09':以制表符分割

    TRAILINGNULLCOLS:表示字段没有对应值时允许为空

 

5. (ID, USER_NAME, PASSWORD)

    表的字段

 

问题:

1. SQL*Loader-601: For INSERT option, table must be empty.  Error on table TS_USER

使用INSERT选项导入(不填默认为INSERT选项),要求被导入的表中没有数据,可以根据具体情况把表清空或使用APPEND选项。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值