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

蘭在晨發表於2012-08-04
 

一、實驗環境

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 星期六 8 4 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/26723566/viewspace-739835/,如需轉載,請註明出處,否則將追究法律責任。

相關文章