sqlloader普通裝載之分隔符

蘭在晨發表於2012-08-04
 

一、實驗環境

Windows XP+oracle9i 9.0.1

 

二、實驗思想

進一步理解,在載入資料時控制檔案中分隔符的作用

 

三、實驗設計

   1、建立實驗表

   2、建立控制檔案

   3、載入資料

 

四、實驗步驟

   1、建立實驗表

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

 

表已建立。

 

SQL> select * from test1;

 

未選定行

2、建立控制檔案test1.ctl

LOAD DATA

INFILE *

INTO TABLE test1

REPLACE

FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'

(DEPTNO,

DNAME,

LOC

)

BEGINDATA

10,Sales,"""USA"""

20,Accounting,"Virginia,USA"

30,",",Virginia

40,Finance,Virginia

50,"Finance","",Virginia 

60,"Finance",,Virginia

70,Finance,Virginiaaaaaaaaaaaaaaaaaaaaa

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.

 

達到提交點,邏輯記錄計數6

達到提交點,邏輯記錄計數7

4、檢視資料

SQL> select * from test1;

 

    DEPTNO DNAME          LOC

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

        10 Sales          "USA"

        20 Accounting     Virginia,USA

        30 ,              Virginia

        40 Finance        Virginia

        50 Finance

        60 Finance

 

已選擇6行。

 

五、實驗小結

通過將表中資料和控制檔案中的記錄對比發現

1、第七條記錄由於有個列值超出了規定長度所以改行記錄並未插入成功。

2、若插入記錄中包含分隔符則應該將該列值用欄位符包含起來。

3、記錄中多餘的部分會被忽略

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26723566/viewspace-739821/,如需轉載,請註明出處,否則將追究法律責任。

相關文章