Oracle 的SQL*LOADER中optionally enclosed的作用

表示数据应由特殊字符括起来。也可以括在TERMINATED字符内。使用OPTIONALLY要同时用TERMINLATED

ENCLOSED 指两个分界符内的数据。如果同时用 ENCLOSEDTERMINAED ,则它们的顺序决定计算的顺序。

 

首先创建一张表,建表语句如下:

create table sqlldr_optionally_enclosed

( NO int,

filed1 varchar2(20),

filed2 varchar2(20));

控制文件如下:

load data                            

infile 'sqlldr_optionally_enclosed.txt'                  

replace into table sqlldr_optionally_enclosed

fields terminated by ',' 

optionally enclosed by '"'

TRAILING NULLCOLS               

(No char,

filed1 char,

filed2 char)

 

数据文件sqlldr_optionally_enclosed.txt的内容如下:

1,a,b

2,"a","b"

3,""a"",b

4,""a"",""b""

5,"""a""","""b"""

6,"a,b

7,""a,b

8,"""a,b

9,a",b

10,a"",b

11,a""",b

12,"a"",b

13,""a",b

14,"""a"",b

15,""a""",b

16,""a"""",b

17,""""a"",b

18,"a""",b

19,"""a",b

 

讲控制文件和数据文件放在同一个目录下,在cmd下面执行导入语句如下:

Sqlldr userid=system/123456 control=sqlldr_optionally_enclosed.ctl log=sqlldr_optionally_enclosed.out

这句话说明使用sqlldr导数工具,连接数据库的用户名和密码分别为system,123456,控制文件为sqlldr_optionally_enclosed.ctl,日志输出文件为sqlldr_optionally_enclosed.out

 

导入结果显示如下:

测试Oracle <wbr>的SQL*LOADER中optionally <wbr>enclosed的作用
 

去数据库中通过select * from sqlldr_optionally_enclosed查看数据结果时只有八条记录,如下:

测试Oracle <wbr>的SQL*LOADER中optionally <wbr>enclosed的作用
 

查看输出的日志文件,得知未导入的数据错误原因为:

测试Oracle <wbr>的SQL*LOADER中optionally <wbr>enclosed的作用 

 

总结:导入数据使用SQL*LOADERoptionally enclosed要么数据左边不能带引号;如果有引号左右都必须为奇数个,但不必相等。

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值