FIELDS TERMINATED BY WHITESPACE & FIELDS TERMINATED BY x'09' 区别

引用:http://space.itpub.net/26723566/viewspace-739835

sqlldr的时候字段间隔符是空白的时候,经常使用FIELDS TERMINATED BY WHITESPACE 和 FIELDS TERMINATED BY x'09'。

FIELDS TERMINATED BY WHITESPACE 是指字段之间不管是空格还是tab,还是两者混合体就作为一个间隔符对待。


FIELDS TERMINATED BY x'09'是指字段之间的间隔符就是tab ,而不是空格;这时如果出现空格,只会把空格作为普通字符处理。

一、实验环境

Windows XP+oracle9i 9.0.1

二、实验思想

1、通过实验对比FIELDS TERMINATED BY WHITESPACEFIELDS TERMINATED BY x'09'的区别

三、实验设计

  1、创建实验表

  2、创建控制文件

  3、加载数据

四、实验步骤

1、创建实验表

      C:\Documents and Settings\Administrator>sqlplus scott/oracle 

SQL> create table test3 as select * from dept where 1=2

2、创建控制文件

LOAD DATA

INFILE *

INTO TABLE test3

REPLACE

-- FIELDS TERMINATED BY WHITESPACE//这里为了对比这两者的区别,我把它定义到下面的表中

-- FIELDS TERMINATED BY x'09'

(DEPTNO TERMINATED BY WHITESPACE ,

DNAME TERMINATED BY x'09',

LOC

)

BEGINDATA

10 Sales Virginia

20        Sales        Virginia

30 Sales        Virginia

40 Sales        "Virginia"

 

3、装载数据

E:\test>sqlldr scott/oracle control=test.ctl log=test bad=test

 

SQL*Loader: Release 9.0.1.1.1 - Production on星期六84 11:20:42 201

 

(c) Copyright 2001 Oracle Corporation. All rights reserved.

 

达到提交点,逻辑记录计数3

达到提交点,逻辑记录计数4

查看表中数据

 

SQL> select * from test3;

   DEPTNO DNAME         LOC

---------- -------------- ------------

       20 Sales         V

       30 Sales         V

                 40 Sales         "

                 

五、实验小结

由上我们可以知道,当使用FIELDS TERMINATED BY WHITESPACE时,无论是使用空格或者tab键作为分隔符都能够将记录装载成功;但使用FIELDS TERMINATED BY x'09'时只能以tab作为分隔符。

在做上面的实验时loc这一列的值仅插入了一个字符,于是我做了下面这个实验作为对比:

将控制文件改为:

LOAD DATA

INFILE *

INTO TABLE test3

REPLACE

-- FIELDS TERMINATED BY WHITESPACE

-- FIELDS TERMINATED BY x'09'

(DEPTNO TERMINATED BY WHITESPACE ,

DNAME TERMINATED BY x'09',

LOC TERMINATED BY WHITESPACE

)

BEGINDATA

10 Sales Virginia

20        Sales        Virginia

30 Sales        Virginia

这时再看实验结果:

DEPTNO DNAME         LOC

SQL> select * from test3;

 

   DEPTNO DNAME         LOC

---------- -------------- -------------

       20 Sales         Virginia

       30 Sales         Virginia

       40 Sales         "Virginia"

发现由于我是在表被指定的分隔符,而loc这列我并没有指定所以就默认将这列的第一个字符装载了。



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27042095/viewspace-748224/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/27042095/viewspace-748224/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值