2012-09-12 60 views
0

我在我的日誌文件中生成一個重大的錯誤消息,因爲我試圖與SQL加載器加載致命錯誤消息

我創建了一個名爲Ad2.ctl的控制文件與此

和加載命令與

sqlldr scott/[email protected] CONTROL='Ad2.ctl' LOG='Ad2.log' 

文件包括下面的示例

的內容乳寧的sql loader命令我得到錯誤的一個長長的清單和地址選項卡後le沒有填充。

的錯誤包括如下

SQL*Loader: Release 10.2.0.3.0 - Production on Wed Sep 12 08:47:28 2012 

Copyright (c) 1982, 2005, Oracle. All rights reserved. 

Control File: Ad2.ctl 
Data File:  Abbeyruntest2.csv 
    Bad File:  Abbeyruntest2.bad 
    Discard File: Abbeyruntest2.dis 
(Allow all discards) 

Number to load: ALL 
Number to skip: 0 
Errors allowed: 50 
Bind array:  64 rows, maximum of 256000 bytes 
Continuation: none specified 
Path used:  Conventional 

Table ADDRESS, loaded from every logical record. 
Insert option in effect for this table: APPEND 


Record 2: Rejected - Error on table ADDRESS, column ADDRESSAREA. 
Column not found before end of logical record (use TRAILING NULLCOLS) 
Record 3: Rejected - Error on table ADDRESS, column ADDRESSAREA. 
Column not found before end of logical record (use TRAILING NULLCOLS) 

Appologies張貼長期錯誤,是一個newbee和感到困惑吧。

+0

您需要顯示CSV中的2條記錄... – Yahia

+0

這是您的文件中真正的示例數據,還是僅僅是您的解釋?基於控制文件,它應該用逗號分隔,所以請顯示文件中的一些實際數據。這聽起來像你在控制文件中有更多的列比在數據文件中。記錄1拒絕表明數據中有標題行,對嗎? –

+0

@ Alex Poole,裏面有一個標題行。我用逗號更新了它。 – lee

回答

1

看來問題在於你csv文件中的引號。

我發現文章here關於如何加載這樣的文件。

LOAD DATA 
APPEND INTO TABLE testing 
FIELDS TERMINATED BY ',' 
TRAILING NULLCOLS 
(
    a 
,b "replace (:b ,'"' ,'')" 
) 
0

您的CSV文件與您的控制文件完全不符。根據FIELDS TERMINATED BY','子句,您的CSV文件中有太多逗號 - 每個逗號都會分隔一個新字段。我修改您的數據正是如此,它的工作:

1,FLAT,     ,1 ,Abesinia Passage , 
2,Flat e-1,Edmund's Home ,1a ,Arena's Palace Lane, 
3,flat 1,`Anderson's House',11a,     ,Laguna Estate 

如果您不能修改您的CSV文件,那麼你需要在你的控制文件中定義FILLER字段,以便字段規範排隊實際數據。

相關問題