我正在尝试将数据加载到外部表。
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
如何在插入数据时消除这些空格?
答案 0 :(得分:0)
我已将源文件的NLS字符集从 ZHS32GB18030 更改为 16UTF16 ,现在数据已正确加载到外部表。