2012-03-07 66 views
0

我以下面的方式使文本文件包含字段。從unix系統在oracle中加載文本文件

"64252368","7489040","305762", 
"64285217","8","787341", 

我正在使用下面的控制文件。

OPTIONS (SKIP=1) 
LOAD DATA 
TRUNCATE INTO TABLE test_table 
FIELDS TERMINATED BY '",' 

(
     LEARNEVENT_ID, 
     ORGANIZATION, 
     COURSE_ID 
) 

但是,我得到的錯誤:

Record 1: Rejected - Error on table test_table, column LEARNEVENT_ID 
ORA-01722: invalid number 

請幫助我就可以了。

回答

0

問題奠定了與「被終止,且字段的」引號」的數字的封裝,「根本不剝去引號。

試試這個

OPTIONS(SKIP=1) 
LOAD DATA 
TRUNCATE INTO TABLE test_table 
FIELDS TERMINATED BY ',' 
TRAILING NULLCOLS 
(
    LEARNEVENT_ID "replace (:LEARNEVENT_ID ,'"', '')", 
    ORGINAZATION "replace (:ORGINAZATION ,'"', '')", 
    COURSE_ID "replace (:COURSE_ID ,'"', '')" 
) 
+0

好吧,那些只是數字,而是你應該使用本的解決方案。 – Benoit 2012-03-07 10:45:03

+0

該問題僅適用於數字。 – GuZzie 2012-03-07 11:49:56

2

您需要改變你的CTL文件,包括OPTIONALLY ENCLOSED BY選項。

OPTIONS (SKIP=1) 
LOAD DATA 
TRUNCATE INTO TABLE test_table 
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"' 
(
     LEARNEVENT_ID, 
     ORGANIZATION, 
     COURSE_ID 
) 

我建議reading了上SQL*Loader

+0

感謝Ben,當我試圖在我的控制文件中使用封閉的時候,現在geeting低於錯誤。在TERMINATED和ENCLOSED字段後未找到終止符 – 2012-03-07 10:09:31

+0

如果數據以逗號結尾,則使用TRAILING NULLCOLS。刪除此行,如果它不... – Ben 2012-03-07 10:11:49

+0

我的數據以逗號結尾。好心的建議我在這種情況下該怎麼辦? – 2012-03-07 10:23:40

相關問題