2017-02-17 98 views
0

我正在嘗試將數據加載到外部表中。將數據加載到外部表中

Sample.txt的

004500323Z Batman - Earth 1 Batman  Pop!    FUN11494 0 EB 000001080CM0500 2010045003230 
004500333Z NBX - Oogie Boogie Glow  Pop! Keychain !E FUN11839 0 EB 000000565 2010045003339 
004500356Z Blacklist - Red Reddington Pop!    FUN10821 0 EB 000001080CM0500 2010045003568 

基於位置數據必須被加載到外部表。

外部表結構

CREATE TABLE EX_BOOK 
    ( "ISBN_10" VARCHAR2(10 BYTE), 
    "AUTHOR_NAME" VARCHAR2(70 CHAR), 
    "BOOK_TITLE" VARCHAR2(150 CHAR), 
    "PUBLICATION_COMPANY_NAME" VARCHAR2(60 CHAR), 
    "PUBLICATION_DATE" CHAR(6 BYTE), 
    "SORT_1" VARCHAR2(3 CHAR), 
    "SELLING_PRICE" VARCHAR2(9 BYTE), 
    "SORT_2" VARCHAR2(7 CHAR), 
    "ISBN_13" VARCHAR2(13 BYTE) 
    ) 
    ORGANIZATION EXTERNAL 
    (TYPE ORACLE_LOADER 
     DEFAULT DIRECTORY "DAT_DIR" 
     ACCESS PARAMETERS 
     (RECORDS DELIMITED BY "\n" CHARACTERSET ZHS32GB18030 BADFILE BAD_DIR : 'CHINESE_BOOK_MASTER_SIMPLIFIED_%p_%a.bad' LOGFILE LOG_DIR : 'CHINESE_BOOK_MASTER_SIMPLIFIED_%p_%a.log' READSIZE 10485760 FIELDS LRTRIM MISSING FIELD VALUES ARE NULL REJECT ROWS 
WITH ALL NULL FIELDS ("ISBN_10" (1: 10) CHAR(10) ,"AUTHOR_NAME" (11: 80) CHAR(70) ,"BOOK_TITLE" (81: 230) CHAR(150) ,"PUBLICATION_COMPANY_NAME" (231: 290) CHAR(40) ,"PUBLICATION_DATE" (291: 297) CHAR(6) ,"SORT_1" (304: 306) CHAR(3) ,"SELLING_PRICE" (307: 315) INTEGER EXTERNAL(9) ,"SORT_2" (316: 322) CHAR(7),"ISBN_13" (323: 335) CHAR(13))  ) 
     LOCATION 
     ('Sample.txt' 
     ) 
    ) 
    REJECT LIMIT UNLIMITED; 

但是,當插入數據到外部表不必要的空格被追加。

EX_BOOK

ISBN_10  AUTHOR_NAME BOOK_TITLE   PUBLICATION_COMPANY_NAME PUBLICATION_DATE SORT_1 SELLING_PRICE SORT_2 
0 0 4 5 0 0 3 2 3 Z B a t m a n - E a r t h 1 B a t m a n Pop! F U N   1 1 

在插入數據時如何消除這些空間?

+1

您已經爲源文件「ZHS32GB18030」指定了NLS字符集:目標數據庫的NLS字符集是什麼? – APC

+0

是將NLS字符更改爲** 16UTF16 **,現在數據無問題地加載到外部表。 – Shine

回答

0

我已經改變了NLS字符集源文件從ZHS32GB1803016UTF16,現在數據正確加載到外部表。